小编EmF*_*mFi的帖子

Ruby正则表达式,每四个字符分割不起作用

我试图每四个字符拆分一个相当大的字符串.这就是我试图这样做的方式:

big_string.split(/..../)
Run Code Online (Sandbox Code Playgroud)

这产生了一个零数组.据我所知,这应该是有效的.当我将其插入在线ruby正则表达式测试时,它甚至会这样做.

ruby regex

25
推荐指数
1
解决办法
1万
查看次数

在Rails应用程序中记录线程内部

我有一个Rails应用程序,其中少量操作需要大量的计算时间.我没有考虑将这些操作作为后台任务进行管理的复杂性,而是发现我可以将处理拆分为多个线程,并且通过将JRuby与多核服务器一起使用,我可以确保所有线程在合理的时间内完成.(客户已表示非常有兴趣在后台保持此方法与运行任务.)

问题是写入Rails记录器在这些线程中不起作用.日志文件中没有显示任何内容.我找到了一些对这个问题的引用但没有解决方案.我不介意在我的代码中插入puts以帮助调试,但是stdout似乎被glassfish gem app服务器吃掉了.

有没有人成功完成Rails ruby​​线程内的日志记录,而不是每次都创建一个新日志?

multithreading ipc ruby-on-rails jruby jrubyonrails

9
推荐指数
1
解决办法
4131
查看次数

Ruby访问数组元素

我有一个看起来像这样的数组.

[{"EntryId"=>"2", "Field1"=>"National Life Group","DateCreated"=>"2010-07-30 11:00:14", "CreatedBy"=>"tristanoneil"},
 {"EntryId"=>"3", "Field1"=>"Barton Golf Club", "DateCreated"=>"2010-07-30 11:11:20", "CreatedBy"=>"public"},
 {"EntryId"=>"4", "Field1"=>"PP&D Brochure Distribution", "DateCreated"=>"2010-07-30 11:11:20", "CreatedBy"=>"public"}, 
 {"EntryId"=>"5", "Field1"=>"Prime Renovation Group, DreamMaker Bath & Kitchen",  "DateCreated"=>"2010-07-30 11:11:21", "CreatedBy"=>"public"}
]
Run Code Online (Sandbox Code Playgroud)

我将如何迭代遍历此数组,以便我可以指定要打印的字段并获取值,因此我可以执行类似的操作.

puts EntryId.value
Run Code Online (Sandbox Code Playgroud)

ruby

7
推荐指数
2
解决办法
2万
查看次数

self.attribute与@attribute的优点?

假设如下:

def create_new_salt
  self.salt = self.object_id.to_s + rand.to_s
end
Run Code Online (Sandbox Code Playgroud)

为什么使用"自我"会更好.而不是实例变量'@salt'?

ruby

6
推荐指数
1
解决办法
1201
查看次数

验证habtm关联的长度而不保存

我有一个与组有HABTM关系的用户模型.我不希望用户能够在5个以上的组中,所以想要验证HABTM关系的长度.

在编辑用户页面上,我有一个复选框列表,用户可以在其中选择他们想要的组(我正在使用formtastic作为表单).

在我的用户控制器中我打电话:

@user.update_attributes(params[:user])
Run Code Online (Sandbox Code Playgroud)

这导致rails自动更新关联.

在我的用户模型中,我有以下内容:

def validate
    if self.groups.length > 5
        self.errors.add(:groups, "cannot have more than 5 groups")
    end
end
Run Code Online (Sandbox Code Playgroud)

这导致表单验证失败,但update_attributes调用已更新数据库以反映对关联组的更改.这样,每次用户单击"保存"按钮时,即使记录无效,也会保存其组关联.

解决这个问题的最佳方法是什么?

我想也许验证需要在组模型而不是用户模型上,这会起作用吗?理想情况下,我想更新关联的组而不保存记录,进行验证,然后保存记录.

validation activerecord ruby-on-rails has-and-belongs-to-many

5
推荐指数
1
解决办法
3125
查看次数

如何仅查找已发布至少一条评论的用户

我正在使用Rails 2.3.5.

这是一个标准案例.表是:用户,评论,user_comments.我需要找到状态为"有效"且已发布至少一条评论的所有用户.

我知道评论表可以有外键,但这是一个人为的例子.表中有两个用户.有两条评论.这两条评论都是由第一个用户发布的.

named_scope :with_atleast_one_comment, lambda { {
      :joins => 'inner join user_comments on users.id = user_comments.user_id ' } }


 named_scope :with_active_status, {:conditions => {:status => 'active'} }    
Run Code Online (Sandbox Code Playgroud)

当我执行

 User.with_atleast_one_comment.with_active_status 
Run Code Online (Sandbox Code Playgroud)

我得到两条记录.由于两个评论都是由一个用户发布的,我只想要一个用户.

有什么问题?

activerecord ruby-on-rails

4
推荐指数
1
解决办法
442
查看次数

default_scope with:joins和:select

我尝试以下列方式定义default_scope:

default_scope :joins => :product, :select => "catalog_products.*, products.*"
Run Code Online (Sandbox Code Playgroud)

我从Rails得到的是这样的:

 SELECT catalog_products.* FROM `catalog_products` INNER JOIN `products` ON `products`.id = `catalog_products`.product_id 
Run Code Online (Sandbox Code Playgroud)

当我将它定义为named_scope时,一切都很好:

named_scope :extended, :joins => :product, :select => "catalog_products.*, products.*"


SELECT catalog_products.*, products.* FROM `catalog_products` INNER JOIN `products` ON `products`.id = `catalog_products`.product_id 
Run Code Online (Sandbox Code Playgroud)

这应该是一个错误还是一个正确的行为?

我正在使用Rails 2.3.4.

谢谢!

activerecord named-scope ruby-on-rails default-scope

3
推荐指数
1
解决办法
6019
查看次数

为学习计划提供资源

我很快就会开始一项新的工作,其中大量使用Scheme.我目前不知道Scheme,但我的雇主向我保证这不是问题.

无论我想在开始日期之前开始运作并掌握该语言的工作知识.所以我正在寻找可以从中学习Scheme的好资源.

我对函数式语言的接触很少.真的只是Haskell的一小部分课程.但我在程序,面向对象和程序语言方面有很强的背景.

在评论者提出要求之前,我能胜任以下语言:C,C++,C#,Java,Perl,Python和Ruby.

resources scheme

3
推荐指数
1
解决办法
827
查看次数

辅助方法或模型或控制器?

假设我有一个带有选择菜单的form_for,用于在belongs_to关联上分配用户:

...
form.select :user_id, @users, :prompt => "Select a User"
...
Run Code Online (Sandbox Code Playgroud)

目前我在控制器中有@users如下:

@users = User.all.map { |u| [u.full_name, u.id] }
Run Code Online (Sandbox Code Playgroud)

我觉得这个逻辑可能会转移到帮助者甚至模型中.但我很困惑在哪里处理这个以及如何处理.

model-view-controller ruby-on-rails

2
推荐指数
1
解决办法
1514
查看次数

在Rails中进行RESTful删除后,有没有办法重定向到特定页面?

可以说我有一个消息资源.在html的某处我有:

<%= link_to("Delete", message, :title => 'Delete', :confirm => 'Are you sure?', 
   :method => :delete )%> 
Run Code Online (Sandbox Code Playgroud)

在我删除它之后,它会将我重定向到列出所有消息的页面.有没有办法重定向到删除后指定的页面?

rest ruby-on-rails

2
推荐指数
1
解决办法
854
查看次数

在Ruby on Rails中旋转图像,类似于AJAX

我正在一个网站上工作,我想在用户在页面上时循环图像,类似于幻灯片.我四处搜寻,但未能找到领先优势.

有没有人用Rails和它支持的Javascript框架做到这一点?

javascript ajax ruby-on-rails

1
推荐指数
1
解决办法
3352
查看次数

Ruby on Rails:为RESTful Rails使用"complete_tasks_controller"

我很难解决以RESTful方式完成任务的问题.我有一个"任务"控制器,还有一个"complete_tasks"控制器.

我在complete_tasks_controller创建操作中有这个:

def create
   @task = Task.find(params[:id])
   @task.completed_at = Time.now
   @task.save
end
Run Code Online (Sandbox Code Playgroud)

我试着这样说:

<%=link_to "Complete task", new_task_complete_task_path(@task), :method => :post %>
Run Code Online (Sandbox Code Playgroud)

..但是我在提到"只允许获取,放置和删除请求"时遇到错误.

你知道我做错了什么吗?

ruby rest routes ruby-on-rails

0
推荐指数
1
解决办法
247
查看次数