Ruby on Railsで、タイムチケットのような個人と個人で売り買いできるようなサービスを作りたいと考えています。
この過程で、お互いがレビューする機能を実装するうえで、「すでにユーザーが該当ユーザーをレビューしている場合は、レビューを投稿するのではなく編集できる」ような仕様にしたいです。
ですが、そのユーザーがレビューをしたかどうかを画面上でif文で分ける際にエラーが出てしまっています。
Railsチュートリアルのフォロー/フォロワー解除フォームのパーシャルを参考にしているのですがうまく表示されません。
エラー
undefined method `review_content?' for #<User:0x007fe1d210ac28> Did you mean? review_content review_content= review_content_ids reviewed_content reviewed_content=
ビュー
<% if current_user.review_content?(@user) %> <div class="btn"> <%= link_to @user.username + "さんのレビューを編集する", edit_review_path %> </div> <% elsif @user != current_user %> <div class="btn"> <%= link_to @user.username + "さんのレビューを書く", new_review_path %> </div> <% end %>
コントローラー
class UsersController < ApplicationController def show @user = User.find(params[:id]) @reviews = @user.passive_reviews end end
モデル
ユーザーモデル
class User < ApplicationRecord ・・・ has_many :review_content, through: :active_reviews, source: :reviewed has_many :reviewed_content, through: :passive_reviews, source: :reviewer end
レビューモデル
class Review < ApplicationRecord belongs_to :reviewer, class_name: "User" belongs_to :reviewed, class_name: "User" validates :reviewer_id, presence: true validates :reviewed_id, presence: true end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。