0

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

问题是:

我有一个模范学生:id,:name,:email,:phone 和:id_indicator,这是 id 的 FK。我想显示 INDICATOR 的名称而不是 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

4

2 回答 2

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 %>

有关更多信息,请查看 rails guides 或 railscasts

于 2013-04-02T22:26:55.920 回答
1

请向我们展示您的模型,但它应该很简单:

<%= student.indicator.name %>
于 2013-04-02T22:20:06.087 回答