* Обратите внимание, чтобы просмотреть весь код, перейдите по ссылке
Я создаю новые "учетные записи". Каждая новая учетная запись имеет: много пользователей. У пользователей есть_and_belong_to_many роли . Я пытаюсь назначить СУЩЕСТВУЮЩИЕ роли новым пользователям в форме новой учетной записи. Как правило, простой процесс, однако ...
Ассоциация между пользователями и ролями have_and_belong_to_many предполагает, что пользователи и роли связаны таблицей соединений. У меня нет модели для работы. Так что я не уверен, как это сделать. Я могу создавать новые роли, используя методы, обозначенные здесь (в ответе), но я не знаю, как назначить существующие роли новым пользователям через модель учетной записи.
Эквивалент SQl будет выглядеть примерно так: SQL (0.1ms) INSERT INTO "roles_users" ("role_id", "user_id") VALUES (6, 29)
Где мне нужно 29, чтобы функционировать как идентификатор нового пользователя, созданного в рельсах, т.е. 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 %>
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