什么样的Ruby on Rails模型关联“简单”查找?

时间:2012-03-03 14:25:25

标签: ruby-on-rails model associations

我有以下场景我试图在Ruby on Rails应用程序中配置(警告:我是初学者)...

我有SupportType模型,它定义了不同级别的客户支持选项(银牌,金牌等),并详细说明了该支持类型涵盖的内容(24/7,仅限工作日等)。

我有另一个模型,客户端包含所有基本的客户信息数据。

我需要将客户端关联到SupportType(Client Jones有Gold级别的支持),但无法理解设置此关系的“正确”方式。在这种情况下,“has_many”或“has_one”似乎都不适用。

如何设置此目标,以便能够在一个视图中显示所有客户端详细信息和支持参数?

TIA!

1 个答案:

答案 0 :(得分:3)

class Client < ActiveRecord::Base
  belongs_to :support_type
end

class SupportType < ActiveRecord::Base
  has_many :clients
end

通过这种方式,您可以使用a_client.support_type访问客户的支持类型,并查看具有gold_support.clients

的黄金支持类型的所有客户

你不能在客户端模型中使用has_one,因为在那种情况下Rails aspects to find a client_id in the support_types DB table如果我理解得不好,因为许多客户端可以拥有相同的SupportType。

PS:请记住将support_type_id列添加到客户端数据库表