[英]Cannot get data from related models in Rails
我在不同的命名空间中有2个模型。
class Admin::Membership < ActiveRecord::Base
has_many :authorization_roles
end
class AuthorizationRole < ActiveRecord::Base
belongs_to :membership
end
成员资格模型与AuthorizationRole模型位于不同的文件夹中(我不知道叫什么)
运行Admin::Membership.find(:all)
,不包括AuthorizationRole模型中的数据。 我已经在authorization_roles表上创建了membership_id字段,但是仍然无法使两个模型相关。 这段代码有问题吗? 抱歉,如果我在这里缺少一些基本知识。
尝试这个
class Admin::Membership < ActiveRecord::Base
has_many :authorization_roles, :class_name => '::AuthorizationRole'
end
class AuthorizationRole < ActiveRecord::Base
belongs_to :membership, :class_name => 'Admin::Membership'
end
我从未使用过命名空间模型,并且我认为您不需要...但是也许您必须在AuthorizationRole中指定类名称,例如:
belongs_to :membership, :class_name => 'Admin::Membership'
更新:
假设您有:
class Membership < ActiveRecord::Base
has_many :authorization_roles
end
class AuthorizationRole < ActiveRecord::Base
belongs_to :membership
end
您已将一个名为membership_id的整数列添加到authorization_roles,并已运行迁移。 现在,您应该能够像这样@membership.authorization_roles.create( ... )
创建authorization_roles并通过@membership.authorization_roles
获取它们
检查是否要设置表名前缀。 Rails模型生成器将为命名空间模型添加一个如下文件:
# /app/models/admin.rb
module Admin
def self.table_name_prefix
'admin_'
end
end
注意:这是Rails 3.0.1版-不确定较早的版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.