簡體   English   中英

將多個模型組合成一個視圖 Rails

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

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