是否有一种方法可以允许所有操作使用参数?我正在使用的应用程序具有功能标记系统,我希望可以通过查询字符串参数覆盖功能标记(以帮助测试)。我在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
,但这将容易出错且重复。
答案 0 :(得分:0)
感谢@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