У меня есть модель пользователя и ролевая модель. К ним присоединяются отношения has_and_belongs_to_many. Когда администратор создает пользователя, я хочу, чтобы он мог назначать ему роль и сохранять его при вызове @ user.save
Дело в том, что я получаю предупреждение, что не могу массово назначить отношения ролей.
Любые предложения о том, как это сделать, я на Rails 2.3.2
Спасибо.
Редактировать: Код по запросу.
user.rb
class User < ActiveRecord::Base
has_and_belongs_to_many :roles,
:join_table => "users_roles",
:foreign_key => "role_id",
:associated_foreign_key => "user_id"
end
role.rb
class Role < ActiveRecord::Base
has_and_belongs_to_many :users,
:join_table => "users_roles",
:foreign_key => "user_id",
:association_foreign_key => "role_id"
end
Просмотр: new.html.haml
- form_for(@user, users_path(:subdomain => current_account.subdomain)) do |f|
.input_set
= f.label(:login, "Username")
= f.text_field(:login)
.input_set
= f.label(:name)
= f.text_field(:name)
.input_set
= f.label(:email)
= f.text_field(:email)
- fields_for("user[roles][]", Role)do |user_role|
.input_set
%label Role
= user_role.select(:name, Role.all.map{|r| [r.name, r.id] })
.input_set
= f.label(:password)
= f.password_field(:password)
.input_set
= f.label(:password_confirmation, "Password Again")
= f.password_field(:password_confirmation)
.input_set
%label
= f.submit "Add User"
И я хочу, чтобы Роль сохранялась для пользователя, вызывая @ user.save в моей опции создания. Это возможно? Или это отношения, которые я не могу использовать таким образом, для этого мне нужны отношения has_many.