簡體   English   中英

在Rails視圖中顯示關聯的模型數據

[英]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 :searchbelongs_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM