定義依賴另一個方法設置的虛擬setter方法時,似乎在哈希中設置的屬性的順序很重要。有沒有辦法解決這個問題,同時仍然可以批量分配屬性?設置Rails模型屬性的順序
https://gist.github.com/3629539
EDIT
在真實代碼的條件,而不是在所示的例子中,被檢查的相關聯的對象的存在。如果該對象存在,請設置一個值。如果不是,則忽略傳入的值。但是,我也使用了accep_nested_attributes_for。所以,哈希屬性可能包含關聯的屬性。在這種情況下,該對象將存在。
{:name => 'Fred', :nested_attributes => {:color => 'red'}}
名稱將不會被設置,因爲模型將不存在。
{:nested_attributes => {:color => 'red'}, :name => 'Fred'}
accept_nested_attributes_for將構建一個嵌套實例,然後設置屬性。當要設置名稱時,該實例將存在並且將設置嵌套屬性。
Ew;你確定這是最好的方式嗎?不知道你的上下文,但用模型回調處理這個問題可能更有意義嗎? –
你能舉個例子嗎? – efoo