1

結合テーブル ( ) を使用して多くのオブジェクトに関連付けられている単純なUserモデルがあります。ここで、カンマ区切りの町 ID のリストを割り当てることによって、特定のユーザーに属する町を更新したいと思います (HTTP POST パラメーターとして送信されたフォームから直接取得します)。Townhas_and_belongs_to_many

ユーザー オブジェクトは、次のコントローラー コードを使用して保存されます。

@current_object.update_attributes(params[:user])

たとえば、に設定されているparams[:user]インクルード。town_ids1,4,6

残念ながら、これはユーザーと町の関連付けをまったく更新しません。ただし、手動で行うと、美しくうまく機能します。

User.find(:first).town_ids = "1,4,6" # this saves automatically

collection_singular_idsこれらのフィールドをまとめて割り当てることができないということでしょうか?

私のユーザーモデルには以下が含まれています:

has_and_belongs_to_many :towns

# necessary for mass-assignment, otherwise it results in an exception:
attr_accessible :town_ids

どんな助けでも大歓迎です。

4

1 に答える 1

2

を配列town_idsとして渡す必要があります。

User.find(:first).update_attributes(:town_ids=>[1,4,6])

ID を文字列として渡すと、Rails は文字列を整数に変換しようとします。

"1,4,6".to_i # => 1
于 2012-07-04T12:33:47.553 に答える