【发布时间】:2010-02-14 00:42:18
【问题描述】:
*注意查看所有代码,点击链接
我正在创建新的“帐户”。每个新帐户 have_many :users。 用户拥有_and_belong_to_many 个角色。我正在尝试在新帐户表单中将现有角色分配给新用户。然而,通常是一个简单的过程......
用户和角色之间的 have_and_belong_to_many 关联意味着用户和角色通过连接表关联。我没有可以使用的模型。所以我不确定如何进行编码。我可以使用here(在答案中)概述的方法创建新角色,但我对通过帐户模型将现有角色分配给新用户一无所知。
SQl 等价物是这样的:SQL (0.1ms) INSERT INTO "roles_users" ("role_id", "user_id") VALUES (6, 29)Where I need 29 to function like the new user's created in rails i.e. VAULES (6, ID)
当前代码:(创建一个新角色)
<% f.fields_for :users do |builder| %>
<%= render 'user_fields', :f => builder %>
<p>Login : <%= f.text_field :login %>
<p>Email : <%= f.text_field :email %>
<p>Password : <%= f.password_field :password %>
<p>Confirm Password : <%= f.password_field :password_confirmation %>
<%= f.hidden_field :account_id, :value => :id %>
<% f.fields_for :roles do |builder| %>
<%= builder.hidden_field :name, :value => 'test' %>
<% end %>
帐户.rb
has_many :users
accepts_nested_attributes_for :users
用户.rb
has_and_belongs_to_many :roles
accepts_nested_attributes_for :roles
accounts_controller.rb
def new
@account = Account.new
#builds user and roles in memory
1.times do
user = @account.users.build
1.times { user.roles.build }
end
【问题讨论】:
标签: ruby-on-rails forms has-and-belongs-to-many