【问题标题】:Retrieve the Active Record Association name between two classes\models检索两个类\模型之间的活动记录关联名称
【发布时间】:2011-06-16 12:09:49
【问题描述】:

我正在使用 Ruby on Rails 3.0.7,我想知道如何在两个类\模型之间检索 Active Record 关联 名称。

也就是说,我有两个模型

class User < ActiveRecord::Base
  has_many :accounts
end

class Account < ActiveRecord::Base
  belongs_to :users
end

我想(在运行时)检索它们的关联名称,在本例中为 accountsusers 字符串。

有可能吗?如果是这样,我该怎么做?


更新

如果我在UserAccount 类中有更多关联语句(请参见下面的示例),我如何准确地检索User Account 关联名称?

class User < ActiveRecord::Base
  has_many :accounts
  has_many :articles
  has_many :comments
end

class Account < ActiveRecord::Base
  belongs_to :users
  has_many :articles
  belongs_to :authorization
end

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 class associations


    【解决方案1】:

    ?

    User.reflect_on_all_associations.each do |assoc|
      puts "#{assoc.macro} #{assoc.name}"
    end
    #=> "has_many accounts"
    

    UPD

    User.reflect_on_all_associations.select{|a| a.class_name == "Account"}.each do |assoc|
      puts "#{assoc.macro} #{assoc.name}"
    end
    #=> "has_many accounts"
    

    【讨论】:

    • 如果我在 User 和 Account 类中有更多的关联语句?如何准确检索“用户”“帐户”关联?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    相关资源
    最近更新 更多