使用已连接的表

时间:2015-07-11 13:07:34

标签: ruby-on-rails activerecord

Project.joins(:project_status).where(id: 1).first

我想使用" Project.ProjectStatus.name"等字符串。它将返回已连接项目状态的名称,以及Project.name。

之类的名称

.read_attribute()似乎没有更深入地加入/包含记录。 .send工作时我会这样做。(' ProjectStatus')。发送(' id')但这似乎不太理想,可能很危险,这些变量来自用户。

它适用于模板引擎,所以我可能会有类似的东西...... " {{Project.name}}状态已更改为{{ProjectStatus.name}}"

我可以拿到任何宝石吗?我现在非常厌倦了我在Google上搜索的内容。在CakePHP中,我使用过Hash :: extract,之前有点像xpath。

1 个答案:

答案 0 :(得分:0)

Project和ProjectStatus之间的关联是什么?我认为它是has_one: :project_status

无论如何,如果您希望能够致电@project.name(其中@project是类Project的实例; .name应该针对每个项目,所以你应该将它定义为实例方法而不是类方法Project.name),你可以在Project模型中创建一个方法:

def name
  project_status.name
end

假设您之前在模型中将关联定义为

has_one: :project_status

现在只需使用.name

即可检索名称