kjs*_*js3 24 strong-parameters ruby-on-rails-4
我有一个通过关联构建新模型的create方法,如果POST请求中没有params,我希望它返回带有一些文本的400响应.但是,我收到一个错误.
这是在Rails 4.0.2中
控制器方法:
def create
@cast_profile = current_user.build_cast_profile(cast_profile_params)
if @cast_profile.save
redirect_to cast_profile_path
else
render :edit
end
end
def cast_profile_params
params.require(:cast_profile).permit(:name, :email, :public)
end
Run Code Online (Sandbox Code Playgroud)
如果我通过params它很好,但我正在尝试测试错误的请求方案.这是错误:
ActionController::ParameterMissing: param not found: cast_profile
Run Code Online (Sandbox Code Playgroud)
我可以明确地拯救它,但我认为强大的参数应该自动完成.
Bar*_*art 44
行为如下:
处理未经许可的密钥
默认情况下,未明确允许的参数键将记录在开发和测试环境中.在其他环境中,这些参数将被过滤掉并被忽略.
此外,可以通过更改环境文件中的config.action_controller.action_on_unpermitted_parameters属性来更改此行为.如果设置为:log将记录未许可的属性,如果设置为:将引发异常提升.
(来源)
我建议使用400状态(错误请求)从此异常中抢救:
rescue_from ActionController::ParameterMissing do
render :nothing => true, :status => :bad_request
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23512 次 |
| 最近记录: |