2014-01-18 96 views
0

我有兩個模型設置:照片和搜索。每張照片都有一個關聯的搜索,我想嘗試在照片視圖中顯示相關的搜索。這裏是我的模型:在Rails視圖中顯示關聯的模型數據

class Photo < ActiveRecord::Base 

    has_one :search 

end 

# Data: name:string, photo_url:string, search_id:integer 

簡而言之:我不確定是否需要有has_many關聯這裏或沒有。

class Search < ActiveRecord::Base 

    validates :search_term, :presence => true 
    has_many :photos 

end 

# Data: search_term:string 

這裏是控制器動作:

def index 
    @photos = Photo.all 
end 

最後,視圖模板:

<!-- index.html.erb --> 

<section class="photos"> 
    <%= render @photos %> 
</section> 

<!-- _photo.html.erb --> 

<div class="photo__item"> 
    <h1><%= photo.id %>: <%= photo.name %></h1> 
    <h3>Search_term: <%= photo.search_id.search_term %></h3> 
    <%= image_tag(photo.photo_url) %> 
</div> 

我得到的錯誤是:

undefined method `search_term' for 2:Fixnum 

我我甚至不完全確定我爲此設置的是c orrect,所以任何幫助將不勝感激。

回答

1

你把照片表SEARCH_ID,所以我想你應該使照片的類定義是這樣

class Photo < ActiveRecord::Base 
    belongs_to :search 
end 

,並在視圖中,你應該得到的照片的搜索實例像這樣

<h3>Search_term: <%= photo.search.search_term %></h3> 
相關問題