2014-02-03 2 views
0

я следующая модель:ассоциативный список для many_to_many не сохраняются в рельсах 4

class User < ActiveRecord::Base 
has_and_belongs_to_many :clubs 
accepts_nested_attributes_for :clubs 

class Club < ActiveRecord::Base 
has_and_belongs_to_many :users 

class UsersClubs < ActiveRecord::Base 
end 

В моем контроллере пользователей Я уточнял:

def user_params 
    params.require(:user).permit(:club_ids => []) 
end 

В моей форме я имею:

<%= select_tag :club_ids, options_from_collection_for_select(@Club.all, "id", "name"), :multiple=>true%> 

Как только я нажимаю кнопку формы, я вижу, что club_ids отправляется со значениями из формы выбора, тем не менее, когда я c все user.update(user_params) не добавляет их в базу данных. Я просмотрел другие примеры и внес свои изменения, но это все еще не работает. Что мне не хватает?

EDIT: Я знаю, что могу делать вставки и удалять себя, потому что я получаю массив, заполненный значениями, которые я хочу, поэтому я могу вставить соответствующие записи. Мне просто интересно, не сделали ли рельсы это автоматически, обновив параметры.

+0

params.require (пользователь): .permit (: club_ids), не уверен, но попробовать это –

ответ

0

попробуйте поставить :club_ids => [] внутри хэш.

например.

def user_params 
    params.require(:user).permit({:club_ids => []}) 
end 

ссылки из here

+0

Это не имеет никакого значения. – bb2

+1

Вы пробовали: '<% = select_tag" user [club_ids] [] ", options_from_collection_for_select (@ Club.all," id "," name "),: multiple => true%>'? – RustComet

+0

Спасибо, это была проблема, имя тега. – bb2

Смежные вопросы