[英]ActiveModel::MassAssignmentSecurity::Error with nested attributes
Hi im trying to create a relation one-to-many in my rails app. 嗨我试图在我的rails应用程序中创建一对多的关系。
Fist i create my models 拳头我创建我的模型
class Produto < ActiveRecord::Base
attr_accessible :compra, :descricao, :estoque, :venda
has_many :precos
accepts_nested_attributes_for :precos
end
class Preco < ActiveRecord::Base
attr_accessible :compra_decimal, :produto_id, :venda_decimal
belongs_to :produto
end
Then i created my controller 然后我创建了我的控制器
class ProdutosController < ApplicationController
def new
@produto = Produto.new
@produto.precos.build
end
def create
@produto = Produto.new(params[:produto])
if @produto.save?
redirect_to produtos_path
end
end
end
After this i created my .html.erb pages: 在此之后我创建了我的.html.erb页面:
_form _形成
<%= form_for @produto do |f| %>
<p>
<%= f.label :descricao %><br/>
<%= f.text_field :descricao %>
</p>
<p>
<%= f.label :compra %><br/>
<%= f.text_field :compra %>
</p>
<p>
<%= f.label :venda %><br/>
<%= f.text_field :venda %>
</p>
<p>
<%= f.label :estoque %><br/>
<%= f.text_field :estoque %>
</p>
<%= f.fields_for :precos do |builder| %>
<%= render "precos", :f => builder %>
<% end %>
<p><%= f.submit %></p>
<% end %>
_precos _precos
<p>
<%= f.label :venda_decimal %><br/>
<%= f.text_field :venda_decimal %>
</p>
<p>
<%= f.label :compra_decimal %><br/>
<%= f.text_field :compra_decimal %>
</p>
new 新
<%= render "form" %>
then, when i submit the form this error appears: 然后,当我提交表单时出现此错误:
ActiveModel::MassAssignmentSecurity::Error in ProdutosController#create
Can't mass-assign protected attributes: precos_attributes
does anyone have any idea about it? 有没有人对它有任何想法?
Just change your model: 只需更改您的型号:
class Produto < ActiveRecord::Base
attr_accessible :compra, :descricao, :estoque, :venda, :precos_attributes
has_many :precos
accepts_nested_attributes_for :precos
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.