【发布时间】:2012-11-06 21:13:07
【问题描述】:
我似乎无法做到这一点。我有很多通过关系只是不工作。这是设置:
class Group < ActiveRecord::Base
belongs_to :user
has_many :groups_phone_numbers, :dependent => :destroy
has_many :phone_numbers, through: :groups_phone_numbers
attr_accessible :name
end
class PhoneNumber < ActiveRecord::Base
belongs_to :user
has_many :responses
has_many :groups_phone_numbers
has_many :groups, through: :groups_phone_numbers
attr_accessible :label, :number
end
class GroupPhoneNumber < ActiveRecord::Base
belongs_to :group
belongs_to :phone_number
end
我已经尝试了复数的所有变体,但无法克服未初始化的错误。我究竟做错了什么?数据库中的表(连接模型)称为 groups_phone_numbers。
确切的错误(g是一个组):
1.9.3p0 :002 > p g.phone_numbers
NameError: uninitialized constant Group::GroupsPhoneNumber
生成连接表的迁移:
class CreateGroupPhoneNumbersJoinTable < ActiveRecord::Migration
def change
create_table(:groups_phone_numbers) do |t|
t.references :group
t.references :phone_number
t.timestamps
end
end
end
谢谢
【问题讨论】:
-
你能添加确切的错误吗?
-
groups_phone_numbers应该是group_phone_numbers,不是吗? -
@MrYoshiji 我试过了……我试过每一个复数组合
-
这些表的迁移是什么样的?
-
只是为了确定,迁移正确执行了吗?表就这样存在于数据库中?
标签: ruby-on-rails activerecord has-many-through