Rails通过id获取相关资源的标题

问题描述 投票:0回答:2

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

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

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

ruby-on-rails ruby
2个回答
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

2
投票

您可以使用Cliente获取完整的project.cliente对象(请注意,不使用_id)。所以你可以像常规的Cliente一样使用它;例如,要获得name只需:

project = Project.find(1)
project.cliente.name
© www.soinside.com 2019 - 2024. All rights reserved.