学用 Rails 也有一会了,看了好些资料大概就是说 mass-assign 有两种。一种白名单一种黑名单。黑名单用 attr_protected
, 白名单用 attr_accessible
那我就想知道了。是不是用了 attr_protected
, 没用 attr_accessible
的时候,只要不被指定再 attr_protected
里面的属性就可以直接 mass-assign?
实际上我是碰到了这样的问题。
class Event < ActiveRecord::Base
belongs_to :project
...
end
然后在创建 Event 的时候就出错了
Event.create( :project => Project.first )
ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: project