0

Rails 3.2.3を使用していますが、HABTMリレーションで値を割り当てるのに問題があります。

基本的に、製品とユーザーの2つのモデルがあります。新しい製品を作成するときに、Products_Usersの中央のテーブルに挿入された値を挿入したいと思います。

将来的には、製品の元の作成者だけでなく、「ユーザーxもその製品を編集できる」と言えるようにするためにHABTMである必要があります。

私のモデル:(簡単にするために他の関係は省略されています)

product.rb
class Product < ActiveRecord::Base
has_and_belongs_to_many :users
accepts_nested_attributes_for :users

attr_accessible <product attributes>, :user_ids, :user_id #it says cant mass assign user_ids so I also added the :user_id, but then it says unknown attribute :user_id
end

user.rb

class User < ActiveRecord::Base
has_and_belongs_to_many :products
attr_accessible :user_id <plus the user attributes>
end

私の製品コントローラーには、scaffoldからのデフォルトのアクションとコードがあります。

問題は私の見解にもあるかもしれません。また、製品とカテゴリの間にHABTMの関係があり、すべて問題ありません(チェックボックスリストからカテゴリを選択します)

しかし、すでにログインしているユーザーが新しい製品を作成した後、Products_Usersテーブルに新しい行を挿入するにはどうすればよいですか?

フォームの後に私のビューで使用しようとしています:

<%= f.hidden_​​field:product_id、:value => params [:id]%>#製品が技術的に作成されていない場合、ここに何を入力しますか?

<%= f.hidden_​​field:user_id、:value => current_user.id%>#この「current_user.id」は他のビューで機能します。

これは機能しておらず、ほとんど意味がありませんが、私がやろうとしていることを達成することは可能ですか?

ご協力いただきありがとうございます

4

1 に答える 1

4

を削除しhidden fields、保存後に追加しました。

user=current_user
@product.users << user

それが誰かを助けることを願っています。

よろしく

于 2012-05-24T11:48:02.927 に答える