小编Ben*_*min的帖子

Rails 4强参数 - 处理缺失的模型参数哈希

模特:帖子和用户

帖子belongs_to:用户
用户has_many:帖子

简单.

假设存在少数用户,我们访问Post的编辑页面.

<%= form_for @post do |f| %>
Run Code Online (Sandbox Code Playgroud)

...

<% User.all.each do |user| %>
  <div><%= f.radio_button "user_id", user.id %></div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

...

Post's Controller利用Rails 4强大的参数.

params.require(:post).permit(:user_id)
Run Code Online (Sandbox Code Playgroud)

假设编辑帖子表单只有单选按钮作为字段.

问题:抛出ActionController :: ParameterMissing异常.param not found:post

永远不会创建Post params哈希的原因,导致抛出上述异常.与空文本字段不同,空单选按钮不会触发要创建的模型的参数哈希.

如果Post模型要求user_id有效,该怎么办?当然,人们会想要再次渲染视图,原因是无法保存帖子.

问题:在坚持Rails约定的同时处理这种情况的优雅方法是什么?

更新:

关于这个进一步集思广益,我敢肯定可能有很多其他情况会产生这个问题; 它不一定对应于单选按钮.

strong-parameters ruby-on-rails-4

17
推荐指数
1
解决办法
1万
查看次数

标签 统计

ruby-on-rails-4 ×1

strong-parameters ×1