Rails Tutorialのアプリにメンション機能を搭載させようとしています。
しかし、メンションをFeedに表示させようとしたところ、エラーが発生してしまいました。
Model内部のコードで'user'に定義付けするためには、どのようにすればよいのでしょうか?
#動作環境
Rails 5.2.0
Ruby 2.6.3
エラータイトル
NameError in TweetsController#follower
##エラー詳細文章
undefined local variable or method `user' for #Class:0x00007fa1940d1208 Did you mean? super
エラーの発生しているコード
Tweet.rb
def Tweet.including_replies(user_id) # Tweetsテーブルから、下記のいずれか条件の投稿を取得する # 自分がフォローしている人 # 自分のマイクロポスト # 返信先が自分になっているマイクロポスト Tweet.where("user_id IN (:following_ids) OR user_id = :user_id OR in_reply_to = :user_id" , following_ids: user.following_ids, user_id: user_id) end
###関連するコード
tweets.controller
def follower @tweet = current_user.tweets.build @feed_items = current_user.feed.page(params[:page]) end
user.rb
def feed # ユーザーのステータスフィードを返す Tweet.including_replies(id) end
tweets/follower.html.erb
<div class="col-md-8"> <h3>Tweets Feed</h3> <%= render 'shared/feed' %> </div>
shared/_feed.html.erb
<% if @feed_items.any? %> <ol class="tweets"> <%= render @feed_items %> </ol> <%= paginate @feed_items %> <% end %>
#やってみたこと
Tweet.rb内部の'user'を下記の通り変更してみましたが、引き続きエラーが発生してしまいます。
- user => current_user
- user => @userに変更後, Tweets.controller内のfollower定義にて@user = current_userを追加
#参考にしている記事
Railsチュートリアル 第14章 返信機能実装記録
https://qiita.com/johnslith/items/8d931b66f72c97c78199
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/19 02:18