RoR显示名称而不是自联接表的ID

时间:2013-04-02 22:15:05

标签: ruby-on-rails self-join

这是我第一次来这里! 我希望没有人对我的问题感到生气,几天前我就开始研究rails。

问题是:

我有一个模特学生:id,:name,:email,:phone和:id_indicator,这是id的FK。 我想显示INDICATOR的NAME而不是INDICATOR的ID。

<td><%= student.id%></td>
<td><%= student.name %></td>
<td><%= student.email %></td>
<td><%= student.phone %></td>
<td><%= student.id_indicator%></td> ---> I want to show the NAME here

我该怎么做?

全部谢谢!

只有一个模特学生。它是一个自我关系表。 我让学生推荐学生。

对此的SQL查询如下:

select name from **students** where id = ( select id_indicator from **students** where id = 10)

实施例:     http://i.stack.imgur.com/7kgfX.png

2 个答案:

答案 0 :(得分:2)

  

一名学生可以指示许多学生,并指示学生   仅限一名学生

class Aluno < ActiveRecord::Base 
    attr_accessible :email, :id, :id_indicator, :name, :profession, :gender, :phone

    belongs_to :indicator, class_name: "Aluno", :foreign_key => "id_indicator"
    has_many :indicates, class_name: "Aluno", :foreign_key => "id_indicator"
end

当您想要查看指示学生的人的姓名时:

<%= student.indicator.name %>

或者如果您想找到学生表示您可以做的所有学生:

<% student.indicates.each do |indicate| %>
     <%= indicate.name %>
<% end %>

了解更多信息结帐导轨或轨道广播

答案 1 :(得分:1)

请告诉我们您的型号,但它应该像以下一样简单:

<%= student.indicator.name %>