我正在制作一个简单的rails应用程序,它是科威特所有商场和购物中心内商店的目录。我创建了一个商店模型和Mall模型,并建立了以下关联:
class Shop
has_many_and_belongs_to :malls
class Mall
has_many :shops由于同一家商店可以存在于多个购物中心,我希望有一种方式,让我在同一时间将一家商店与多家商场联系起来。当我去购物中心展示页面时,如何才能使一家商店自动出现在许多不同的购物中心下,而不必每次为每个购物中心单独创建相同的商店。换句话说,当我创建一个新的商店时,我需要能够选择商店所属的购物中心,然后让该商店出现在我之前指定的购物中心中。
更新:在创建过程中,解释将商店分配给一个特定的购物中心。例如,当我创建一个新商店时,如何指定它属于Mall A和Mall B,而不是Mall C,然后将它们显示在相应的购物中心显示页面中?
发布于 2015-09-07 17:52:43
你可以有一个HABTM协会来处理这个问题,
class Shop < ActiveRecord::Base
has_and_belongs_to_many :malls
end
class Mall < ActiveRecord::Base
has_and_belongs_to_many :shops
end为Shop和mall表创建迁移,您需要进行迁移才能创建一个作为商店和购物中心之间连接的表。它应该包含mall_id和shop_id作为属性。
rails g migration create_mall_shops更新控制器代码:
shop = Shop.find(params[:id])
mall = Mall.find(params[:mall_id])
shop.malls << mallshop.malls会给你一系列与商店相关的购物中心。现在,如您所料,在shop.malls数组中,只推送购物中心对象A和B,所以购物中心C永远不会与商店相关。
https://stackoverflow.com/questions/32443643
复制相似问题