私はユーザーのの製品のhabtmリンクが動作しています。私は(もちろん、常に製品を所有していない)、その製品の作成者を追跡するために、ユーザーモデルと製品モデル間のリンクを追加したい同じモデル間に2つのhas_manyリンク
しかし、ときに私は(多くの)の所有者から製品の作成者を区別することはできませんので、私はモデル新しいリンク、アプリケーションのネジアップ私のユーザーと製品で書く製品。
私を助けることができますか?ここに私のモデルである:
class Product < ActiveRecord::Base
belongs_to :group
has_and_belongs_to_many :authors
has_and_belongs_to_many :users # THIS IS OK (with appart table)
has_many :users, :as => creator # THIS LINE DOES NOT WORK AT THE MOMENT
end
class User < ActiveRecord::Base
has_and_belongs_to_many :products
belongs_to :user # THIS LINE DOES NOT WORK AT THE MOMENT
default_scope :order => "username ASC"
end
データベースはOKです、と私は私の製品から作成者の列の下のuser_idを保存することができますが、リンクproduct.creator.nameが動作しない(なぜならモデル私は推測する)、私は列内のuser_idを読むことができますが、彼のすべての属性を持つユーザーオブジェクトを取得しません。
REM:完璧に動作しますが、私は創作者のための私の新しいリンクを削除する場合にのみuser.products ...
ありがとう!
私はすぐに答えは、まだ動作していないので、チェックしました。私はキークリエーターにアクセスすることができず、Product.creatorは常に021を返します(たとえSQliteビューアでテーブルの列にuser_idが表示されても) –
とuser.owned_productsはそのような列を返しません:products.user_id –
私が言ったように、私は製品の作成者を指し示す 'products'の列が' user_id'と呼ばれていると仮定しました。 'user_id'をその列が呼び出されたものに変更します。 – smathy