Я хотел бы получить совет о заявлении «IF» о действии «Избранное», которое разрешает пользователю любимую игру. Одна ассоциация необходима для одной игры. Один идентификатор пользователя/один идентификатор игры (в таблице соединений).Rails - Statement IF для таблицы соединений в контроллере
Я получил единственность в БД с моей моделью GameUser:
class GameUser < ActiveRecord::Base
belongs_to :game
belongs_to :user
validates_uniqueness_of :game_id, scope: :user_id
end
контроллер (который работает, просто возвращает ошибку, когда я получил уже добавили в избранное игру): Я хотел бы, чтобы правильно написать Если и я действительно не знаю, как
def favorite
game = Game.find(params[:id])
if
# Here is where I struggle,
#if User haven't got already a match in the DB (Join table User_ID/Game_ID) then :
current_user.games << game
flash[:notice] = "#{Game.name} Favorited"
redirect_to games_url
else
flash[:notice] = "#{Game.name} already favorited"
redirect_to games_url
end
end
Большое спасибо.
Вот отлично! Да, у меня уже есть has_many: game_user, это была просто ошибка с любимым действием, когда она уже была предпочтительна. Но спасибо, это сработало! я только что изменил IF для a Unless во втором заявлении;) –
Добро пожаловать :) – Ursus