2013-04-14 51 views
2

我有兩個類用戶計劃查找對象的名稱與編號

class User < ActiveRecord::Base 
    attr_accessible :startdate, :schedule_id, :password, :username 
    belongs_to :schedule 
end 

class Schedule < ActiveRecord::Base 
    attr_accessible :name 
    has_many :users 
end 

我想創建一個視圖中,我打印由用戶過濾對象日程表的名稱:

<table> 
    <% @users.each do |user| %> 
    <tr> 
    <td><%= user.id %></td> 
    <td><%= user.username %></td> 
    <td><%= user.password %></td> 
    <td><%= user.startdate %></td> 
    <td><%= Schedule.find(user.schedule_id).name %></td> # <<< This is what I want to do! 
    </tr> 
    <% end %> 
</table> 

當我執行,我得到「無法找到日程沒有ID」

我怎樣才能做到這一點?感謝您的任何建議!

+0

這條線給你一個錯誤?你會描述目前的行爲嗎? – fmendez

+2

嘗試使用關聯:'user.schedule'將返回相關的時間表。因此,如果您的所有關聯設置正確,您可以嘗試'user.schedule.name'。 –

+0

@ThomasKlemm這是我得到的,當我嘗試它:未定義的方法名稱爲零:NilClass – Zois

回答

4

我看不到任何語法錯誤的代碼。如果產生錯誤,請提供錯誤。要遵循Ruby on Rails的約定,你就應該能夠做到:

<td><%= user.schedule && user.schedule.name %></td> 

&&是在情況下,用戶沒有指定的時間表。

+0

好吧,如果每個用戶都與schedule_id相關聯,那麼這實際上是有效的。 – Zois