我有以下结构
class List < ActiveRecord::Base
has_many :global_lists
end
class GlobalList < ActiveRecord::Base
set_table_name :globals_lists
belongs_to :list
end
以及以下内容:
gl=GlobalList.find(1) #works
gl.list #works
gm=GlobalList.where(:global_id => 23).includes(:list) #works
gm.list # doesn't work
使用返回对象的位置时如何访问列表?
THX
编辑:有没有办法让我压扁这个并获得所有列表?我想我可以迭代但感觉可能有一些我不知道的语法
答案 0 :(得分:2)
问题是GlobalList.find
返回单个GlobalList对象,而where
的查询返回ActiveRecord::Relation
对象(表示整组对象)。你想要:
gm = GlobalList.where(:global_id => 23).includes(:list).first
答案 1 :(得分:1)
这一行:
gm = GlobalList.where(:global_id => 23).includes(:list)
返回一组模型。您需要先获得第一个才能获得列表。
gm.first.list
答案 2 :(得分:0)
GlobalList.find_by_global_id(23).list