[英]Displaying associated model data in Rails view
我設置了兩個模型:照片和搜索。 每張照片都有一個相關的搜索,我想嘗試在照片視圖中顯示此相關搜索。 這是我的模特:
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
我甚至不完全確定我的設置是正確的,所以任何幫助都將非常感激。
您需要設置正確的關聯。 嘗試更改has_one :search
到belongs_to :search
。
belongs_to關聯始終在具有外鍵的模型中使用。
請參閱: http : //api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
你把search_id放在照片表中,所以我認為你應該像這樣制作照片類定義
class Photo < ActiveRecord::Base
belongs_to :search
end
在視圖中你應該像這樣得到照片的搜索實例
<h3>Search_term: <%= photo.search.search_term %></h3>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.