簡體   English   中英

保存到Rails之前如何更改許可參數?

[英]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.

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