@related=Book.find_all_by_related(@book.related)
if @related.count>1
@related.each do |b|
b.update_attributes(params[:book])
end
end
我正在使用rails 2.3.5。对于上面的代码,第一次迭代工作正常并显示为true。但是对于下一次迭代,b.update_attributes()显示为false。所有参数都在迭代中到达。方法update_attributes()有条件吗?
答案 0 :(得分:0)
如果您的模型指定了attr_accessible属性,则只会更新这些属性。
使用attr_accessible防止(用户)对用户不应编辑的属性进行质量分配。质量分配用于标准控制器的创建和更新方法。
class User < ActiveRecord::Base
attr_accessible :login, :password
end
因此,执行以下操作将快速返回true,但不会更新status属性。
@user.update_attributes(:status => 'active')
如果要更新状态属性,则应单独分配。
@user.status = 'active'
save