我有以下型号
venues(id, name, ....)
categories(id, name, ....)
categories_venues(id, venue_id, category_id)
我想创建一个与场地相关联的类别的数组。这种关系属于HABTM类型。
我尝试了什么?
@venue = Venue.friendly.find(params[:id])
categories = @venue.categories.map { |x| x.id }
答案 0 :(得分:2)
你可以使用:
@venue.category_ids
答案 1 :(得分:1)
试试这个:@venue.categories.pluck(:id)
。
这将仅为SELECT
字段
id
查询
答案 2 :(得分:1)
i guess `has_many through` will help you out.for example:-
#####in user.rb
##association for getting all users and thier groups /vice-versa
has_many :user_groups, :dependent => :destroy
has_many :groups, :through => :user_groups
---------------------------------------------------
####in group.rb
has_many :user_groups, :dependent => :destroy
has_many :users, :through => :user_groups
-----------------------------------------------------------
#####in user_group.rb
belongs_to :group
belongs_to :user
-------------------------------------------------------------
###and we have the necessary migration(its easy... :))..
so now
@user=User.find(1)
all_groups_for_user=@user.groups.where("name=?","Alumni")
all_names_of_groups_for_user=@user.groups.map(&:name)
如果您使用scopes/class methods
而不是...,则可以使用joins/include