Rails中有许多关于模型之间关系的示例,但它们似乎都遗漏了模型的attr_accessible部分。
我正在寻找关于attr_accessible的一些最佳实践,我发现了一些相互矛盾的建议。我可以/应该:
--是否将外键放入attr_accessible?
Class Post
attr_accessible :name, :user_id
belongs_to :user
end
Class User
attr_accessible :first, :last
has_many :posts
end--将完整的模型放入attr_accessible?
Class Post
attr_accessible :name, :user
belongs_to :user
end
Class User
attr_accessible :first, :last
has_many :posts
end发布于 2013-02-09 04:09:55
与Kaeros所说的相反,我实际上建议不要允许外键字段是可批量分配的。原因是你打开了一种简单的方式,让别人在添加帖子时发送不同的user_id。这可能就是为什么你找到的例子不包括外键的原因。
解决这个问题的最好方法是在为用户添加新帖子时使用集合构建器方法:
user.posts.create(params[:post])如果你选择不遵循这个建议,那么它实际上取决于你是如何批量赋值的。如果您的散列包含:user_id,那么您应该使其可访问,如果它包含:user,则使用该散列。如果您不确定,您可以随时将两者都设置为可访问。
发布于 2013-02-09 03:39:39
在attr_accessible中使用外键似乎是正常的,对我来说也是默认选项。您可以看到here指南也使用此表单。
向attr_accessible添加型号名称对我也很有效。
我更喜欢第一种方法,所以我很容易知道我正在处理外键。
https://stackoverflow.com/questions/14779943
复制相似问题