作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用动态 attr_accessible
根据这篇文章:
http://asciicasts.com/episodes/237-dynamic-attr-accessible
它工作正常。但是我还没有找到一种优雅的方法来使它与嵌套属性一起工作。这是一些简化的代码:
class Company < ActiveRecord::Base
has_many :employees
accepts_nested_attributes_for :employees
end
class Employee < ActiveRecord::Base
belongs_to :company
attr_protected :salary
attr_accessor :accessible
def mass_assignment_authorizer
if accessible == :all
ActiveModel::MassAssignmentSecurity::BlackList.new
else
super + (accessible || [])
end
end
end
employees_attributes
的字段,包括用于创建新员工的空白字段。我找不到电话
Employee#accessible=
在这种情况下。浏览 ActiveRecord 源代码,这似乎是不可能的:在非常深的调用堆栈的最远端,嵌套关联只会导致
Employee.new
被调用的属性。
@accessible
至
:all
.但我认为没有办法保证在 protected 属性之前设置此属性。
最佳答案
我是 Rails 新手,在尝试让嵌套属性自己工作时遇到了很多麻烦,但我发现我必须将嵌套属性添加到我的可访问列表中。
class Company < ActiveRecord::Base
has_many :employees
accepts_nested_attributes_for :employees
attr_accessible :employees_attributes
end
accepts_nested_attributes_for
创造那个特别的
employees_attributes
,但是当您将所有属性默认为不可访问(我相信 asciicast 确实如此)时,您将无法使用它。
关于ruby-on-rails - mass_assignment_authorizer 和嵌套属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4926180/
我正在使用动态 attr_accessible根据这篇文章: http://asciicasts.com/episodes/237-dynamic-attr-accessible 它工作正常。但是我还
防止大规模分配,如 railscast不再适用于 Rails 3.1。 给出的错误是: wrong number of arguments (1 for 0) 为 app/models/user.rb
我是一名优秀的程序员,十分优秀!