2013-05-03 38 views
0

在這裏,我有2個與一對多的關係簡單的模型:Rails:在View中調用父模型的屬性?

class Category < ActiveRecord::Base 
    attr_accessible :Name 
    has_many :items 

class Item < ActiveRecord::Base 
    attr_accessible :Category_id, :Name, :Price, :Description 
    belongs_to :category 

和我有一個視圖顯示有關狀物品信息:

<table> 
    <tr> 
    <td class="field" style="width: 175px;"><b>Name:</b></td> 
    <td><%= @item.Name %></td> 
    </tr> 
    <tr> 
    <td class="field"><b>Price:</b></td> 
    <td><%= @item.Price%></td> 
    </tr> 
    <tr> 
    <td class="field"><b>Category: </b></td> 
    <td><%= Category.find(@item.Category_id).Name %></td> 
    </tr> 
    <tr> 
    <td class="field"><b>Description: </b></td> 
    <td><%= @item.Description %></td> 
    </tr> 
</table> 

它的工作的權利。但在這裏我有一個問題:是否有另一種方法可以調用類Category的屬性。像@item.category.Name,我嘗試但沒有工作(undefined method "Name" for nil:NilClass

回答

1

爲什麼你有你的屬性在駱駝案件? Downcase和改變這一點:

<tr> 
    <td class="field"><b>Category: </b></td> 
    <td><%= Category.find(@item.Category_id).Name %></td> 
    </tr> 

這樣:

<tr> 
    <td class="field"><b>Category: </b></td> 
    <td><%= item.category.name %></td> 
</tr> 

它應該工作。

+0

還是不行,有錯誤就像我對零上面提到'未定義的方法「名」:NilClass'。 – WindzSoul 2013-05-04 08:07:29

0

也許一個零檢查會有所幫助,如here所述。

<tr> 
    <td class="field"><b>Category: </b></td> 
    <td><%= @item.category.name unless @item.category.nil? %></td> 
</tr>