Rails Join未显示相关表中的字段

时间:2019-03-22 20:32:20

标签: ruby-on-rails ruby ruby-on-rails-5.2

Profile.joins(:course)不显示:course字段。

我尝试过

Profile.joins(:course).select('profiles.*,courses.*')

并且它出现在select中,而不是from命令中,因此没有课程列出现。

  

配置文件加载(2.6毫秒)SELECT课程。*,配置文件。*来自“配置文件”   在“ courses”上进行INNER JOIN“ courses”。“ coursable_id” =“ profiles”。“ id” AND   “ courses”。“ coursable_type” = $ 1 LIMIT $ 2 [[“” coursable_type“,   “个人资料”],[“ LIMIT”,11]]

@profile = Profile.joins(:course).select('profiles.*,courses.*')
@profile.department # a field on Courses table
  

NoMethodError(Profile :: ActiveRecord_Relation:0x00007fb4f4955dc0>的未定义方法“部门”)

解决方案:

@profile.first.department # a field on Courses table

1 个答案:

答案 0 :(得分:1)

Select仅显示在您称为select的模型(即配置文件)上存在的列。但是Course的属性仍然可用。

即您可以像平常那样称呼他们

@profile = Profile.joins(:course).select('profiles.*,courses.*')
@profile.course_name # if course_name is a field of course