2011-02-11 119 views
0

我一直在设置不同的关系几个小时,现在我不知道如何做一个has_many关系,我正在使用。不知道这是否只是命名冲突或我只是不理解。困惑于建立一个has_many关系

这里是我的数据库表:

show_names (table name): 
id 
show_id 
name 

shows (table name): 
id 
length 
synopsis 
number_of_episodes 
status 

所以每次演出有许多可能的名字。所以我想设置一个has_many的关系,所以我可以这样打电话:

Show.all.shownames[0].name 

这会给我第一个名字。

这里是我的模型的代码示例,以及我认为我搞乱的地方。

class ShowName < ActiveRecord::Base 
    has_many :shows 
end 

class Show < ActiveRecord::Base 
    belongs_to :shownames 
end 

使用ShowName.all工程,以获取数据和Show.all工作过。

所以我有两个关于这个问题的主要问题。

1)我只是误会了一些东西或把它放在错误的地方? 2)如何访问节目名称?我知道在其他使用has_one我只是使用该实体的名称是否与has_many一样工作

任何帮助表示赞赏。

+0

为什么你需要显示的名字从展会分开?我的意思是,每个节目的名字都是正确的?或者这是为了赶上多季节演出? – corroded 2011-02-11 02:38:10

回答

1

您翻转了belongs_to和has_many并需要额外的下划线。试试这个:

class ShowName < ActiveRecord::Base 
    belongs_to :show 
end 

class Show < ActiveRecord::Base 
    has_many :show_names 
end 

现在...

show = Show.first 
show.show_names => ["First name for first show", "Second name for second show"]