Rails 2: Сохранение новых отношений HABTM - PullRequest
0 голосов
/ 30 января 2012

Я пытаюсь сохранить новые отношения HABTM между пользователем и категорией.

Модель "Мой пользователь":

class User < ActiveRecord::Base
    has_and_belongs_to_many :categories
end

Модель "Моя категория":

class Category < ActiveRecord::Base
     has_and_belongs_to_many :users
end

Моя таблица соединений настроена правильно.Проблема в том, что я не могу ничего изменить на контроллере пользователя, только в представлении пользователя.Итак, в представлении «Пользователь» есть коллекция collection_select:

<%= f.collection_select :category_ids, Category.all, :id, :title, 
    { :selected => @user.category_ids }, 
    { :multiple => true, :name => 'user[category_ids][]' } 
-%>

Я могу корректно выбрать категории, к которым принадлежит мой пользователь, но когда я нажимаю кнопку «Отправить», все остальные атрибуты сохраняются, кроме категории, которая не являетсяобновлено в таблице соединений.

Если я проверяю параметры, я вижу, что category_ids передается правильно:

"user"=>{"category_ids"=>["2", "4"]

Но я ничего не могу с этим поделать в Userконтроллер, так как мне не разрешено связываться с кодом.Есть ли какой-либо способ автоматически обновить таблицу соединений, или я должен обновить ее вручную?

PS - Я не могу связываться с контроллером пользователя, потому что на самом деле я создаю плагин для Redmine.

Спасибо!

1 Ответ

0 голосов
/ 23 мая 2012

Я также новичок RoR купить как о:

<% for category in Category.find(:all) %>
  <%= check_box_tag "user[categories_ids][]", category.id,  @user.categories.include(category) %>
  <%= category.title %>
<% end %>

Кроме того, дважды проверьте, все ли ваши attr_accessible там.

...