2017-08-09 13 views
1

私のRailsブログアプリでは、ウェルカムコントローラとビューindex.html.erbがあります。そして、私は記事コントローラとビューindex.html.erbshow.html.erbを持っています。別のビューで最も古い記事をRailsアプリに表示する方法

マイ記事閲覧には、記事index.html.erbと記事show.html.erbを表示するための2つのビューがあります。私の記事ビューに記事を掲載すると、すべてが完璧に機能します。しかし私の目標は、最新の記事をポップアップ・モーダルで私の歓迎のビューindex.html.erbにリストすることです。以下は

記事で記事を一覧表示するコードは

<% @articles.reverse.each do |article| %> 
       <div class="w3-quarter"> 
        <div class="panel panel-default" style="width: 300px; min-height: 300px;"> 
         <div class="panel-heading"> 
          <h3><%= article.title %></h3> 
          <p class="w3-opacity"><%= article.created_at.strftime("%b %d, %Y") %> | Comments <span class="label label-primary"><%= article.comments.count %></span> </p> 
         </div> 
         <div class="panel-body"> 
          <p><%= article.text.first(250) %> ...</p> 
          <%= link_to 'Read More', article_path(article), class: 'btn btn-primary btn-block' %> 
         </div> 
        </div> 
       </div> 
      <% end %> 

を表示し、下の私から次のエラーを取得する私の歓迎ビュー

<!-- Modal --> 
     <div id="myModal" class="modal fade" role="dialog"> 
      <div class="modal-dialog"> 

      <!-- Modal content--> 
      <div class="modal-content"> 
       <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal">&times;</button> 
       <h4 class="modal-title">Modal Header</h4> 
       </div> 
       <div class="modal-body"> 
        <h2><%= @article.title %></h2> 
        <p class="w3-opacity">Posted on <%= @article.created_at.strftime("%b %d, %Y") %></p> 
        <hr> 
        <p><%= @article.text.first(500) %></p> 
       </div> 
      </div> 

      </div> 
     </div> 

の中で最も最近の記事を一覧表示するためのコードです私の歓迎index.html.erb

undefined method `title' for nil:NilClass

アイデア?おそらく、あなたはあなたの中にwelcome_controller

@articleを設定されていません

+0

@article変数がnilをお試しください。あなたは何かにそれを割り当てていますか? – urielSilva

+0

私たちに 'welcome_controller'コードを表示してください – Pavan

+0

私は実際に何も割り当てられていません。最新の記事を '@ article'に保存するにはどうすればいいですか?私のarticles/index.html.erbでは、forループを使って 'article'に記事を格納します。しかし、私はすべての記事をループしたくない、私はただ最新のものを欲しい。 – Michael

答えて

1

は何か、この

class WeclomeController < ApplicationController 

    def index 
    @artice = Article.order(created_at: :desc).first 
    end 

end 
+0

@ m.simonborg 'first'はコレクションを最初のレコード ' Article.order(created_at::desc).first'と 'Article.order(created_at::desc).limit(1)'だけに限定しますデータベースへの同じクエリ –

+0

あなたは正しく、私はwelcome_controllerに@articleを設定しませんでした。 '@artice = Article.order(created_at::desc).first'を書いたら、それは完璧に機能しました! – Michael

+0

私はapplication_controllerに@articleを設定すると、アプリケーション全体でその変数にアクセスできるようになるのでしょうか? – Michael

関連する問題