Rails通过id

时间:2017-07-24 22:30:28

标签: ruby-on-rails ruby

我有两个模型(客户端和项目)连接如下:

class Project < ActiveRecord::Base
    belongs_to :cliente
end

class Cliente < ActiveRecord::Base
    has_many :projects
end

项目的架构中有:cliente_id列,所以如果我这样做:

Project.cliente_id我会正确地获得cliente_id。

我的疑问是,我想从它的ID中获取客户名称,所以我需要这样的内容:

Project.cliente_id.name

检索此信息的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用Cliente获取完整的project.cliente对象(请注意,_id未使用)。因此,您可以像常规Cliente一样使用它;例如,要获得name,请执行以下操作:

project = Project.find(1)
project.cliente.name

答案 1 :(得分:2)

您可以找到关联的对象through the association

project = Project.find(1) # Returns the full `project` object
project.cliente # Returns the full `cliente` object
project.cliente.name # Returns just the `name` attribute
project.cliente_id == project.cliente.id # Returns true