質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

318閲覧

<%= render @feed_items %>でパーシャルがレンダリングできない

napoano365

総合スコア28

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2019/06/10 04:34

Rails tutorialの14章の内容を参考に、トップページでログインユーザーが投稿したpostおよび、ログインユーザーがフォローしているユーザが投稿したpostをフィードで表示しようとしています。
<%= render @feed_items %>で次のエラーが表示され困っています。
どなたかお知恵を拝借いただけますと幸いです。(><)

作業環境はcloud9上です。

イメージ説明

トップページのビュー

[/views/static_pages/home.html.erb] <div class="loginsection"> <% if logged_in? %> <P>ここにログイン後のトップページの内容を記述</P> <div class="col-md-8"> <%= render 'shared/feed' %> </div> <% else %> <%= render 'layouts/loginform' %> <% end %> </div>

パーシャルのファイルがないと言っているようですが…
ファイルとしては以下のものを準備しています。

[/views/shared/_feed.html.erb] <% if @feed_items.present? %> <ol class="posts"> <%= render @feed_items %> </ol> <%= will_paginate @feed_items %> <% end %>
[/views/shared/_post_form.html.erb] <%= form_for(@post) do |f| %> <%= render 'shared/error_messages', object: f.object %> <div class="field"> <%= f.text_area :comment, placeholder: "キャプションを入力..." %> </div> <%= f.submit "Post", class: "btn btn-primary" %> <span class="picture"> <%= f.file_field :picture, accept: 'image/jpeg,image/png' %> </span> <% end %> <script type="text/javascript"> $('#micropost_picture').bind('change', function() { var size_in_megabytes = this.files[0].size/1024/1024; if (size_in_megabytes > 5) { alert('Maximum file size is 5MB. Please choose a smaller file.'); } }); </script>

またコントローラーは次のように書いています。

class StaticPagesController < ApplicationController def home if logged_in? @post = current_user.posts.build @feed_items = current_user.feed.paginate(page: params[:page]) end end def help end end

@feed_itemsについてはuser.rbのモデルに書いているfeedメソッドを使っています

[/models/user.rb] class User < ApplicationRecord has_many :posts, dependent: :destroy has_many :active_relationships, class_name: "Relationship", foreign_key: "follower_id", dependent: :destroy has_many :passive_relationships, class_name: "Relationship", foreign_key: "followed_id", dependent: :destroy ・  ・  ・ # ユーザーのステータスフィードを返す def feed following_ids = "SELECT followed_id FROM relationships WHERE follower_id = :user_id" Post.where("user_id IN (#{following_ids}) OR user_id = :user_id", user_id: id) end end

基本的にRailsTutolialどおりに作業をしているのですが(違うとすればMicropostではなくPostになっているくらいです。)何か設定が不足しているのでしょうか…。

■すでにやったこと
renderメソッドの使い方を調べ、記載方法が誤っていないか確認しましたが、
解決しませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。
エラーをよくよむと、

/views/posts配下に
_post.html.erbという名前でパーシャルを探しに行っているようなので、
そこにファイルを作成すると、読み込まれました。

すでにご確認頂いていた方がいれば、お手数をおかけし、すいません。
ありがとうございました。

投稿2019/06/10 04:58

napoano365

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問