*要查看所有代碼,請點擊鏈接使用表單的創建動作可以與連接表進行交互嗎?
我正在創建新的「帳戶」。每個新帳戶have_many:用戶。 用戶have_and_belong_to_many角色。我試圖在新帳戶表單中爲新用戶分配現有角色。然而,通常一個簡單的過程...
用戶和角色之間的has_and_belong_to_many關聯意味着用戶和角色由連接表關聯。我沒有與之合作的模型。所以我不知道如何去編碼這個。我可以使用概述here(在答案中)方法創建新角色,但我無法將現有角色通過帳戶模型分配給新用戶。
在SQL相當於將是這樣的:SQL (0.1ms) INSERT INTO "roles_users" ("role_id", "user_id") VALUES (6, 29)
我需要29像在軌道創建的新用戶的ID的功能,即VAULES(6號)
目前代碼:(創建新角色)
<% 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 %>
Account.rb
has_many :users
accepts_nested_attributes_for :users
User.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
我可以寄給你星巴克禮品卡嗎?我一整天都在處理這個問題。謝謝! – 2010-02-14 02:36:31