簡體   English   中英

在全球范圍內允許強大的參數

[英]Globally permit a strong param

有沒有辦法允許所有操作都使用參數? 我正在使用的應用程序具有功能標記系統,我希望可以通過查詢字符串參數覆蓋功能標記(以幫助測試)。 我已經將以下內容添加到application_controller

before_action :apply_feature_flag_overrides

def apply_feature_flag_overrides
  overrides = params.permit![:feature_flags]
  current_user.feature_flag_overrides = overrides
end

對於不使用參數的動作,這種方法很好用,但是當一個動作執行時,我得到如下錯誤:

ActionController::UnpermittedParameters at /upcoming_posts
found unpermitted parameter: :feature_flags

似乎params.permitparams.require對於任何給定的動作僅被調用一次。 那是對的嗎? 有沒有辦法像這樣跨界關注的問題將一組參數全局列入白名單? 我可以將對params每次調用都更新為也包括:feature_flags但這將易於出錯且重復。

感謝@tadman對刪除使用過的參數的評論,使我能夠正常工作。 更新后的代碼如下:

before_action :apply_feature_flag_overrides

def apply_feature_flag_overrides
  overrides = params.to_unsafe_h[:feature_flags]
  current_user.feature_flag_overrides = overrides
  params.reject! { |key| key == "feature_flags" }
end

暫無
暫無

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

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