2012-04-28 4 views
0

У меня есть два объекта ингредиент & происхождения.
каждый ингредиент имеет происхождение так в ингредиенте я origin_id
окна показываетрубин на рельсах - перевести id на имя

<p> 
    <b>Name:</b> 
    <%= @ingredient.name %> 
</p> 

<p> 
    <b>Origin:</b> 
    <%= @ingredient.origin_id %> 
</p> 

Я хочу, чтобы отобразить имя происхождения, а не идентификатор.
Как мне принести имя на дисплей?

EDIT: класс ингредиент объявляется следующим

class Ingredient < ActiveRecord::Base 
    has_and_belongs_to_many :recipes 
    belongs_to :origin 

    attr_accessible :name, :origin_id 
end 

классовое происхождение

class Origin < ActiveRecord::Base 
    attr_accessible :name 
end 

ответ

4

Вы должны объявить в Ingredient классе:

belongs_to :origin 

После этого, вы можете использовать

<%= @ingredient.origin.name %> 

См Rail Relation Guide (belongs_to и has_one ассоциации в вашем случае)

+0

я получаю - неопределенный метод 'имя» для ноль: NilClass – Jeb

+1

@perry это означает, что '@ ingredient.origin' является' nil', конечно, потому что '@ component.origin_id' является' nil' или не совпадает с идентификатором в таблице «originins» – Baldrick

+0

Я вижу. У меня тоже было это в new.erb. Благодарю. – Jeb

Смежные вопросы