2012-01-30 7 views
0

ユーザーとカテゴリの間に新しいHABTM関係を保存しようとしています。Rails 2:新しいHABTM関係の保存

マイUserモデル:

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][]' } 
-%> 

私はcorreclty私のユーザーが属するカテゴリを選択することができますが、私は提出]をクリックすると、他のすべての属性が上の更新されていないカテゴリを除いて保存されますジョインテーブル

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

しかし、私は混乱に許可されていないよので、私は、ユーザーのコントローラにそれで何かを行うことはできません。

私はのparamsを検査した場合、私はcategory_idsが正しく渡されていることがわかりますコードと一緒に。ジョインテーブルが自動的に更新されるか、手動で更新する必要がありますか?

PS - 私はRedmineのプラグインを実際にビルドしているので、ユーザーコントローラで混乱することはありません。

ありがとうございます!

答えて

0

イムもRoRの初心者は、購入方法について:また

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

、あなたのattr_accessibleがすべて存在する場合、二重チェック。