添加关联时续集访问many_to_many连接表

Tom*_*oli 5 ruby sequel

我正在使用Sequel建立一个心愿单系统.我有一个wishlistsitems表和一个items_wishlists连接表(这个名字是续集选择的).该items_wishlists表还有一个额外的列id for facebook id(所以我可以存储opengraph动作),这是一个NOT NULL列.

我也有WishlistItem续集many_to_many关联设置的模型.该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.

谢谢你的帮助

Jer*_*ans 7

建议的方法是为连接表添加模型.但是,如果您不想这样做,您可以:

class Wishlist
  def _add_item(item, hash={})
    model.db[:items_wishlists].insert(hash.merge(:item_id=>item.id, :wishlist_id=>id))
  end
end
Run Code Online (Sandbox Code Playgroud)