Rails 4 Has_one 嵌套形式 - 错误 Unpermiited parameter
Rails 4 Has_one nested form - Error Unpermiited parameter
我不知道我做错了什么。我有两个型号:
class Product < ActiveRecord::Base
has_one :review, dependent: :destroy
accepts_nested_attributes_for :review, allow_destroy: true
end
class Review < ActiveRecord::Base
belongs_to :product
end
他们有has_one关系。数据库在评论 table 中有 product_id 列。
我的控制器在新的 (@product = Product.new) 上很直接,编辑操作什么也没有。这是我的强参数:
def product_params
params.require(:product).permit(:name, ..., review_attributes: [:id, :rating, :text, :author, :name] )
end
我的表格如下:
<%= form_for(@product, :html => {multipart: true, :class => "form-horizontal"}) do |f| %>
...
<%= f.fields_for :review do |ff| %>
<%= ff.hidden_field :author, :value => 'Yes' %>
<%= ff.label :rating, "Enter a Rating" %>
<%= ff.number_field :rating, class: "form-control input-md", min: 0, max: 5, step: 0.5 %>
<%= ff.label :name, "Title of Review" %>
<%= ff.text_field :name, class: "form-control input-md" %>
<%= ff.label :text, "Review Description" %>
<%= ff.text_area :text, class: "form-control" %>
<% end %>
<%= f.submit "Create Product", :class => 'btn btn-default btn-lg' %>
<% end %>
我无法弄清楚为什么当我在模型中有 accepts_nested_attributes 时嵌套表单没有出现,我是否需要那个 accepts_nested_attributes,以及为什么我得到一个错误说 "unpermitted parameters: review" 当我没有 accepts_nested_attributes 并提交表格时。非常感谢任何帮助。
在控制器中,尝试在呈现该表单的方法中构建评论对象...
def new
@product = Product.new
@product.build_review
end
我不知道我做错了什么。我有两个型号:
class Product < ActiveRecord::Base
has_one :review, dependent: :destroy
accepts_nested_attributes_for :review, allow_destroy: true
end
class Review < ActiveRecord::Base
belongs_to :product
end
他们有has_one关系。数据库在评论 table 中有 product_id 列。
我的控制器在新的 (@product = Product.new) 上很直接,编辑操作什么也没有。这是我的强参数:
def product_params
params.require(:product).permit(:name, ..., review_attributes: [:id, :rating, :text, :author, :name] )
end
我的表格如下:
<%= form_for(@product, :html => {multipart: true, :class => "form-horizontal"}) do |f| %>
...
<%= f.fields_for :review do |ff| %>
<%= ff.hidden_field :author, :value => 'Yes' %>
<%= ff.label :rating, "Enter a Rating" %>
<%= ff.number_field :rating, class: "form-control input-md", min: 0, max: 5, step: 0.5 %>
<%= ff.label :name, "Title of Review" %>
<%= ff.text_field :name, class: "form-control input-md" %>
<%= ff.label :text, "Review Description" %>
<%= ff.text_area :text, class: "form-control" %>
<% end %>
<%= f.submit "Create Product", :class => 'btn btn-default btn-lg' %>
<% end %>
我无法弄清楚为什么当我在模型中有 accepts_nested_attributes 时嵌套表单没有出现,我是否需要那个 accepts_nested_attributes,以及为什么我得到一个错误说 "unpermitted parameters: review" 当我没有 accepts_nested_attributes 并提交表格时。非常感谢任何帮助。
在控制器中,尝试在呈现该表单的方法中构建评论对象...
def new
@product = Product.new
@product.build_review
end