У меня есть приложение, где пользователи могут писать обзоры для фильма. То, что я хотел бы сделать, - это ограничить пользователя созданием только одного обзора для каждого фильма. Я сумел сделать это в моем обзорах контроллера, как так:Только разрешить пользователям создавать один обзор за фильм
class ReviewsController < ApplicationController
before_action :has_reviewed, only [:new]
....
def has_reviewed?
if Review.where(user_id: current_user.id, movie_id: @movie.id).any?
redirect_to movie_reviews_path
flash[:notice] = "You've already written a review for this movie."
end
end
end
Где я сейчас возникаю проблемы переводят эту же логику в шаблон просмотра индекса с хелперами методами Завещания и CanCanCan в моем распоряжении.
<% if user_signed_in? && ... %> # current_user has already created a review for this movie
<%= link_to "Edit Review", edit_movie_review_path(@movie, review) %>
<% else %>
<%= link_to "Write a Review", new_movie_review_path %>
<% end %>
также: Есть ли способ, чтобы улучшить поиск в моей has_reviewed? способ? Я чувствую, что есть лучший способ написать это, но не могу определить наиболее подходящее исправление.
Привет, У меня есть аналогичный пример, но я немного смущен. У вас есть @album или @movie? – jedi