1

上記のエラーと次のメッセージが表示され続けます。

'nil' is not an ActiveModel-compatible object that returns a valid partial path.

エラーは、18 行目のソースを指しています。

15:     <% if @user.microposts.any? %>
16:       <h3>Comments (<%= @user.microposts.count %>)</h3>
17:       <ol class="microposts">
18:         <%= render @microposts %>
19:       </ol>
20:       <%= will_paginate @microposts %>
21:     <% end %>

命名規則を確認しようとしましたが、Michael Hartl による Rails チュートリアルに示されているとおりに正確に取りました。「レシピ」と呼ばれるモデルの同様のコードのチャンクがあるので、それでも同様のエラーが発生すると想定しています。奇妙なことに、マイクロポストとレシピの両方を作成でき、両方とも signed_in ユーザーのホームページに表示されます。「ユーザー」に移動してアカウントをクリックしようとすると、このエラーが発生します。何か案は?前もって感謝します

4

2 に答える 2

2

失敗した行は部分的なビューをレンダリングしようとしています -- レンダリングする引数@micropostsnil、通常はビュー ファイルを参照する文字列です。たとえば、

<%= render "microposts" %>

_microposts.html.erbディレクトリで名前が付けられたファイルを探すようにレールに指示しますviews/users。ビューでの の使用はrender、コントローラーでの使用とは異なります。

ここでパーシャルのレンダリングに関するドキュメントを参照してください

PS StackOverflow へようこそ - 最初の質問はいいですね!

于 2012-12-06T20:05:15.447 に答える