[英]How to change permit parameter before saving in Rails?
我有下一個代碼:
permitted = params.permit(:url, :title, :description, :post_type, :category_id)
並且我想在保存過程之前更改params [:url]。 我確實嘗試過:
params[:url] = "abc"
但是它並沒有改變這個值。 保存前如何捕捉和更改它? 它已進入Feed控制器。 我也嘗試過:
params[:feed][:url]
但是再也沒有。 誰能給我一些提示?
您可以使用允許的參數初始化模型,然后根據需要更改其中任何一個:
m = Model.new(permitted)
m.url = "abc"
m.save
我根據需要使用以下方式。
before_save
回調 在模型中定義。 當對給定字段中應包含哪些數據有通用規則時,此方法很好。 實際上,在其他大多數情況下,也要復雜一些。
params.require(...).permit(...).merge(url: 'whatever')
這將使用您的參數,並寫入(覆蓋) merge
內給定的參數。 它不必是一對鍵值對。 我有時用它來寫時間戳。 這是一個相當干凈的把戲,但是befoe_save
應該受到青睞:我僅在不認為在模型上編寫單獨的用例方法值得時才使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.