簡體   English   中英

無法從Rails中的相關模型獲取數據

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM