所以我是Rails的新手,我一直在尝试构建一个嵌套的表单。我遇到了很多麻烦,似乎无法让它发挥作用..我在youtube上观看了多个视频,但我似乎无法找到我做的不同。为了我试图建立一个,我有一个产品,有许多买家,但买家只属于一个产品。 (假设您只能购买一件产品......)。当我提交表单时,我收到一个错误,我可以在服务器日志中看到:“未经许可的参数:买方”我觉得我已经尝试了所有的东西......如果有人可能,我会很高兴告诉我发生了什么事。非常感谢
我已按照Rails指南将以下内容添加到我的模型中:
<script>
$('#numberOfAdults').change(function() {
var val1 = this.value;
var val2 = $('#numberOfAdults option:selected').val();
alert(val1 + " - " + val2);
});
产品总监中的强大参数:
class Product < ActiveRecord::Base
has_many :orders
has_many :buyers
accepts_nested_attributes_for :buyers
end
class Buyer < ActiveRecord::Base
belongs_to :product
end
产品控制器:
def product_params
params.require(:product).permit(:name, :description, :image_url, :color, :adult, buyers_attributes: [:name, :age, :product_id])
end
然后是表格: Form (抱歉,这里插入代码时遇到重大问题)
最后这是我的两个表的架构:
def new
@product = Product.new
@product.buyers.build end
create_table "buyers", force: :cascade do |t|
t.string "name"
t.integer "age"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "product_id" end
答案 0 :(得分:2)
您的产品接受buyers
的嵌套属性,但您只是向表单添加买方(无复数)属性。您可能需要将嵌套表单更改为
<%= f.fields_for :buyers, [@product.buyers.build] do |x| %>