我在铁轨上学习红宝石,这是我在SO中的第二个问题。我正在制作数据库来管理产品。在我的squema的一部分,我有可以拥有许多品牌的用户,以及可以拥有许多用户的品牌。我想创建一个嵌套表单来创建一个新用户(注册),该用户有一个用于输入用户品牌名称的字段,用于创建与该用户关联的品牌对象。
所以我的squema看起来像这样:
class Brand < ActiveRecord::Base
has_and_belongs_to_many :users
.
.
.
end
class User < ActiveRecord::Base
has_and_belongs_to_many :brands
accepts_nested_attributes_for :brands
.
.
.
end
ActiveRecord::Schema.define(version: 20160614163029) do
create_table "brands", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "brands_users", id: false, force: :cascade do |t|
t.integer "user_id"
t.integer "brand_id"
end
add_index "brands_users", ["brand_id"], name: "index_brands_users_on_brand_id"
add_index "brands_users", ["user_id"], name: "index_brands_users_on_user_id"
create_table "users", force: :cascade do |t|
t.string "name"
t.string "email"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "password_digest"
t.string "remember_digest"
t.boolean "admin", default: false
t.string "activation_digest"
t.boolean "activated", default: false
t.datetime "activated_at"
t.string "reset_digest"
t.datetime "reset_sent_at"
end
add_index "users", ["email"], name: "index_users_on_email", unique: true
end
我试图在我的用户创建表单中添加用于通过嵌套表单添加品牌名称的字段,但没有成功。
<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= form_for(@user) do |f| %>
<%= render 'shared/error_messages' %>
<%= f.label :name, "Nombre:" %>
<%= f.text_field :name, class: 'form-control' %>
<%= f.label :email, "Correo Electrónico:" %>
<%= f.email_field :email, class: 'form-control' %>
<%= f.label :password, "Contraseña:" %>
<%= f.password_field :password, class: 'form-control' %>
<%= f.label :password_confirmation, "Confirmación de Contraseña:" %>
<%= f.password_field :password_confirmation, class: 'form-control' %>
<%= f.fields_for :brands do |ff| %>
<%= ff.label :name, "Nombre de tu Marca:" %>
<%= ff.text_field :name, class: 'form-control' %>
<% end %>
<%= f.submit "Crear Cuenta", class: "btn btn-primary" %>
<% end %>
</div>
</div>
此表单仅为用户形成表单的文本字段。 我有点迷失了。欢迎任何帮助。
由于
答案 0 :(得分:0)
我还没有真正使用f.fields_for
来嵌套属性。在YesInsights,我使用Cocoon和Simple Form。使用这些库可以很容易地创建具有嵌套属性的表单 - 您甚至可以添加链接以使用简单的帮助程序在表单中为用户添加更多品牌。