簡體   English   中英

Rails:strong_params和getter / setter方法

[英]Rails: strong_params and getter/setter methods

我在Rails 4中使用strong_params。當我嘗試使用這樣的自定義setter方法時:

def foo=(foo)
  @foo = foo
end

然后Rails將該屬性記錄為數據庫中的null。 如果我刪除自定義setter,那么一切正常。 在Rails 3中,自定義setter是這樣編寫的,但也許事情已經改變了? 如果是這樣,自定義設置器現在如何工作?

我認為這段代碼不適用於Rails 3.你確定這個嗎? 因為如果這樣做,您將覆蓋由ActiveRecord創建的setter方法(它負責將數據存儲到DB)。 您的自定義方法版本看起來是否完全如圖所示? 有什么意義呢?

試着打電話給super

def foo=(foo)
  @foo = foo
  super
end

PS:我查了一下,並沒有在Rails 3的(作品有工作super )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM