私は現在のユーザーが好きな投稿をすべて表示しようとしています。ユーザーが好きなすべての投稿を表示するには
私はRuby on Railsを使用しており、Deviseと "Acts As Votable"を使用しています。私はthe Acts As Votable guideに従っていますが、動作させることはできません。
私はこれが移動するための方法だと思う:
@post.liked_by @user1
@post.downvote_from @user2
私はダッシュボードと呼ばれる新しいコントローラを作成:
class DashboardController < ApplicationController
def index
@post = Post.all.liked_by current_user
end
end
をしかし、私は自分のWebを実行したときに私が手:
undefined method `liked_by' for #<Post::ActiveRecord_Relation:0x9aa89b0>
どうすればいいですか?
私の答えはうまくいかないのですか?私の宝石はすでにこの機能(私の答えごとに)を満たすと思うが、私はこれを自分でテストしていない。もし私が正しいとすれば、それを行う方がはるかに良い方法でしょう。 – Andy
@Andy OPが質問するのが難しかった。私の答えの最初の文で指摘されているエラーは、彼が意図したモデルオブジェクトではなく、コレクションに対してモデルメソッド( 'acts_as_votable'によって提供された' liked_by')を使用しようとしていることです。これは文字列を含む配列に対して 'String#gsub'を使うようなものです。メソッドが間違ったオブジェクトで使われています。あなたの答えは、おそらくいくつかの*他の*質問には正しいが、*この*質問には関係していない。投票したアイテムの設定と取得の方法を説明していますが、これはOPが尋ねている問題ではありません。 –
"現在のユーザーが好きな投稿をすべて表示しようとしています。"これは、彼がデータベースから" current_user "によって"好きだった "すべての投稿を検索しようとしているように聞こえます。なぜ彼があなたの答えを最良のものとして選んだのかが分かりません。私の答えは「うまくいく」と答えていますが、私たちの答えは全く異なる2つのことをしています。 – Andy