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