【发布时间】:2011-11-08 19:46:23
【问题描述】:
我在 Rails 和 Jquery Mobile 中有一个非常标准的 CRUD 应用程序,其中有两个与我的问题相关的模型:
class Wall < ActiveRecord::Base
has_many :problems
end
class Problem < ActiveRecord::Base
# boolean attribute is_live
belongs_to :wall
end
在显示每面墙时,我会抓取属于 is_live == true 的那面墙的每个问题。我现在的目标是通过使用 is_live == true 查找墙上的每个问题并将 is_live 更新为 false 来创建一种“清除”所有问题的方法。
但是,我不知道查找和更新每个适当对象的最佳实践/方法。 (这将是一项受限功能,仅适用于具有“管理员”权限的人。)我应该:
-
添加一个链接到新创建的 WallController 动作 像下面这样?
def clear_wall @wall = Wall.find(params[:id]) @problems = @wall.problems.where(:is_live => true) @problem.each {|p| p.update_attribute(:is_live => false) } redirect_to(walls_url) end 添加一个form_for,提交执行相同的控制器代码?
向 Wall 模型添加一个新方法来处理这个问题?
我可能在这方面想得太多了,但在我跌跌撞撞地走上一条过于复杂的道路之前,我会很感激一些方向,这会导致未来出现问题。
【问题讨论】:
标签: ruby-on-rails jquery-mobile rails-activerecord