Я схожу с ума, пытаясь заставить это работать. Я хочу, чтобы петли через jointable называется TriggersUser, чтобы увидеть, где пользователь не имеет Trigger запись (есть только 3 триггеров они могут иметь)Rails: Найти, где ассоциация не существует и объявить переменную
if current_user.triggers.any?
(1..2).each do |n|
if !current_user.triggers.find(n)
@next_trigger = Trigger.find(n)
else
@next_trigger = Trigger.find(3)
end
end
end
Я получаю эту ошибку: Couldn't find Trigger with 'id'=1 [WHERE "triggers_users"."user_id" = ?]
, который отлично, потому что пользователь не имеет связанной записи с trigger_id 1 в таблице соединений. НО, я хочу, чтобы теперь объявить переменную @next_trigger = Trigger.find (1)
Что мне не хватает?
TY !!
Почему вы не используете 'find_by_id' вместо' find'? 'find_by_id' возвращает' nil', когда запись не существует для данного идентификатора, поэтому в вашем случае это будет '@next_trigger = nil' – dp7
OMG. Яс! Пожалуйста, добавьте в качестве решения, чтобы я мог принять. Почему это работает вместо поиска, если find ищет идентификатор? – gwalshington