在定义依赖于要设置的另一种方法的虚拟设置方法时,似乎在哈希中设置属性的顺序很重要。有没有办法在仍然大量分配属性的同时解决这个问题?
https://gist.github.com/3629539
编辑
实际代码中的条件(未在示例中显示)是检查关联对象的存在。如果对象存在,则设置一个值。如果没有,忽略传入的值。但是,我也在使用accepts_nested_attributes_for。因此,属性散列可能包含关联的属性。在这种情况下,该对象将存在。
{:name => 'Fred', :nested_attributes => {:color => 'red'}}
由于模型不存在,因此不会设置名称。
{:nested_attributes => {:color => 'red'}, :name => 'Fred'}
Accepts_nested_attributes_for 将构建一个嵌套实例,然后设置属性。当要设置名称时,实例将存在并设置嵌套属性。