我正在使用具有JSON API的Rails 3.2.2应用程序,并且我使用CLI客户机来插入一些数据。它的工作原理除了作者 模型。当我尝试创建一个新的后(POST belongs_to的:作者和 作者的has_many:帖子)我得到以下错误:即使我使用attr_accessible也不能批量分配受保护的属性
<h1>
ActiveModel::MassAssignmentSecurity::Error in PostsController#create
</h1>
<pre>Can't mass-assign protected attributes: name</pre>
我做了很多的课题研究,但我没有找到有效的解决方案 : - (
我用attr_accessible避免MassAssignent错误,它适用于所有 其他车型,但不是因为“作者”的名称属性
以下是作者模型:
class Author < ActiveRecord::Base
attr_accessible :name, :email
extend FriendlyId
friendly_id :name, use: :slugged
# some validations
has_many :posts
#authlogic
acts_as_authentic
# some stuffs
end
其实,我有残疾whitelist_attributes,它解决了我的问题 但我想,这是不是这样做(也许 不是一个好主意)的便捷方式。
我的问题是:为什么attr_accessible在这里不起作用?如何在不禁用白名单的情况下解决问题 ?
谢谢
瑞文
编辑:
它创建新的岗位的方法:
def create
@post = Post.new(params[:post])
@post.author = current_author
# respond to etc.
end
current_author发现使用给定的API密钥的作者。
看看其他车型使用'friendly_id'?它是否有可能“解除”attr_accessible所做的一些事情?没有检查过,也不知道它 - 只是一个想法。 – 2012-04-27 17:31:28
谢谢你的回答。几乎所有其他模型使用friendly_id – R3v4n 2012-04-27 17:35:56
无赖;好的:)在类声明中的相同顺序? – 2012-04-27 17:36:48