【发布时间】:2011-02-11 02:34:29
【问题描述】:
我已经玩了几个小时来建立不同的关系,但我不知道如何用我正在使用的东西建立 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 一样工作
感谢任何帮助。
【问题讨论】:
-
为什么需要将节目名称与节目分开?我的意思是,每个节目都有名字吗?还是为了赶上多季节目?
-
请注意 Show.all.shownames[0].name 在您的设置中没有意义。 Show.all 返回一个数组,其中 shownames 不会是一个方法。
-
@corroded 每个节目都会有 1 个或多个名称。不仅仅是它的官方名称,还有流行文化的名称。
-
@Austin 那是我打字有点快我的意思是输入 Show.all[0].show_names[0] 类似的东西。
标签: ruby-on-rails ruby-on-rails-3 activerecord