我使用Rails 3.0.9,我想知道attr_accessible方法在哪些情况下(即哪些方法)有效果。例如,如果我使用
attr_accessible :name, :surname当您对new(...)语句使用User.new(params[:user])方法时,它将不分配这些属性值。
但是它还需要注意哪些其他方法呢?--我可以正确地运行,例如,where(...)和exists?(...)等方法--如果没有,attr_accessible就会生效吗?
发布于 2011-08-18 10:39:41
如果使用attr_accessible,则模型将阻止对未包括在attr_accessible列表中的列进行大量分配。受影响的方法是mass assignment的方法,如new、create、update_attributes、attributes=等。所有其他函数都可以工作,甚至是这样的单个任务:
@model_object.column_not_listed_in_attr_accessible_list = "Saved"
@model_object.column_not_listed_in_attr_accessible_list
=> "Saved"因此,在where、exists?等系统中使用它们不存在任何问题。
发布于 2011-08-18 09:12:30
attr_accessible只影响与写操作相关的函数。
例:新的,创造的,update_attributes等。
其他只读功能,如何处、存在、等等,不应产生任何影响.
https://stackoverflow.com/questions/7104952
复制相似问题