显示Ruby On Rails中一个Model的两个不同表的名称和ID

时间:2012-03-07 09:08:28

标签: ruby ruby-on-rails-3

我这里有两个表,它们各自的脚手架生成控制器和模型:

services
id|service_type|details

service_type
id|service_type

Service_type表只包含服务类型列表,例如:

1. CLeaning
2. Grouting
3. Polishing

服务是指每种服务类型的不同实例 - 因此用于抛光的服务订单将具有3作为service_type。

当我列出服务列表时,我想显示services.service_type的相应service_type.service_type条目,其中services.service_type = service_type.id

是否可以设置服务模型以在Ruby on Rails中执行此操作?

1 个答案:

答案 0 :(得分:0)

是的,它可以在rails中建模。您需要在模型中添加以下关系

service_type模型中添加

has_many : services

service模型中添加

 belongs_to : service_type

然后你需要在你的'service'模型中添加另一个名为'service_type_id'的字段,rails将用作外键。

您还必须从services表重命名'service_type'字段,因为它将与rails命名约定冲突。

现在你已经准备好了。

service_type.services 

现在将为您提供该特定服务类型的所有订单

service.service_type将为您提供service_type model

中的行