[英]Combining Multiple Models into one view Rails
我想將來自 4 個模型的數據顯示到一個視圖中。 我為這個名為posts_controller.rb 創建了一個單獨的控制器,並在視圖中創建了posts 文件夾並創建了index.html.erb 文件。
之后在控制器文件中我添加了以下代碼。
class PostsController < ApplicationController
def index
@quotes = Quote.all.order("created_at DESC")
@images = Image.all.order("created_at DESC")
@jokes = Joke.all.order("created_at DESC")
@items = (@quotes.to_a + @jokes.to_a)
end
end
這是我現在嘗試顯示 2 個項目數據的視圖文件。 但它不起作用。 請檢查代碼。
<% if @items.any? %>
<div class="col-md-12">
<% @items.each.do |item| %>
<% if item.is_a? Quote %>
<div class="postbg">
<%= quote.quotefie %>
<div class="wedate pull-right wehi">
<%= quote.created_at.strftime("%b %d, %Y") %>
</div>
<div class="clearfix"></div>
<em class="pull-right wehi" style="margin-top:20px;"> - <%= quote.author %></em>
<%= link_to 'Show', quote %>
<%= link_to 'Edit', edit_quote_path(quote) %>
<%= link_to 'Destroy', quote, method: :delete, data: { confirm: 'Are you sure?' } %>
</div>
<% else %>
<% @jokes.each do |joke| %>
<div class="postbg">
<%= joke.jokefie %>
<div class="wedate pull-right wehi">
<%= joke.created_at.strftime("%b %d, %Y") %>
</div>
<div class="clearfix"></div>
<%= link_to 'Show', joke %>
<%= link_to 'Edit', edit_joke_path(joke) %>
<%= link_to 'Destroy', joke, method: :delete, data: { confirm: 'Are you sure?' } %>
</div>
<% end %>
<% end %>
</div>
<% end %>
這是它顯示的錯誤。
undefined method `do' for #<Enumerator:0x007fd55fb032b8>
你的問題在這里:
<% @items.each.do |item| %>
do
定義了一個塊,而不是一個方法調用,所以它應該是:
<% @items.each do |item| %>
請注意已刪除的.
.
你用過do
正確進一步下跌時,您使用的視圖@jokes.each do |joke|
.
這條線
<% @items.each.do |item| %>
應該
<% @items.each do |item| %>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.