[英]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.