困惑于建立has_many关系

时间:2011-02-11 02:34:30

标签: ruby-on-rails ruby-on-rails-3 activerecord

我一直在玩几个小时建立不同的关系,我不知道如何与我正在使用的东西建立一个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相同

感谢任何帮助。

1 个答案:

答案 0 :(得分: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"]