5

Sequel を使用してウィッシュリスト システムを構築しています。私はwishlistsanditemsテーブルとitems_wishlistsjoin テーブルを持っています (その名前は続編が選んだものです)。このitems_wishlistsテーブルには、facebook id 用の追加の列 (opengraph アクションを格納できるようにするため) もあり、これは NOT NULL 列です。

また、続編の many_to_many アソシエーションがセットアップされたモデルも持っていWishlistます。ItemこのWishlistクラスには:select、many_to_many アソシエーションを に設定するオプションもありますselect: [:items.*, :items_wishlists__facebook_action_id]

関連付けを作成するときに追加のデータを追加できる方法はありwishlist.add_item my_item, facebook_action_id: 'xxxx'ますか? Facebook IDの列にNOT NULLがあるため、関連付けを作成した後はできません。

助けてくれてありがとう

4

2 に答える 2

7

これを行うための推奨される方法は、結合テーブルのモデルを追加することです。ただし、それをしたくない場合は、次のことができます。

class Wishlist
  def _add_item(item, hash={})
    model.db[:items_wishlists].insert(hash.merge(:item_id=>item.id, :wishlist_id=>id))
  end
end
于 2013-03-28T14:48:52.670 に答える