2014-01-18 56 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>