【发布时间】:2013-05-07 22:24:09
【问题描述】:
在rails 2.3.11,我有下面的模型
attr_accessor :person_id
在控制器中
@project.person_id = current_user.id
现在,我将其转换为 rails 3.2.11 并且我得到了
Can't mass-assign protected attributes: person_id
所以我改变了模型,我从attr_accessor 中删除了:person_id 并添加以下行
attr_accessible :person_id
但我在控制器中使用 person_id,在这里
@project.person_id = current_user.id
我现在收到了
NoMethodError in ProjectsController#create
undefined method `person_id=' for #<Project:0x19cc51a>
任何想法或帮助,我该如何解决这个问题?如何同时处理 attr_accessor 和 attr_accessible?
【问题讨论】:
-
把它们都放在
attr_accessible :person_id中;attr_accessor :person_id -
@ShawnBalestracci 如果我同时放置
attr_accessible :person_id;attr_accessor :person_id,我收到了Can't mass-assign protected attributes: person_id -
批量分配错误不是来自此行:
@project.person_id = current_user.id,因为这不是批量分配。 -
@Arjan 是的,你是对的,我明白了,因为我在位置的型号中使用了那个 person_id。