#ruby-on-rails #controller
#ruby-on-rails #контроллер
Вопрос:
Я хочу иметь возможность узнать, равны ли два значения в действии контроллера.
def completed
@meeting = Meeting.find(params[:id])
if @meeting.day_of_meeting == @meeting.days
@meeting.update_attribute(:day_of_meeting, '1')
redirect_to :back
else
@meeting.increment!
redirect_to :back
end
end
Строка, о которой я говорю,:
if @meeting.day_of_meeting == @meeting.days
Когда я запускаю его, кажется, он никогда не может проверить, что оба этих поля равны, и просто увеличивает поле day_of_meeting .
Любая помощь будет оценена.
Обновить
Приращение модели!
def increment!
update_attribute(:day_of_meeting, day_of_meeting 1)
end
По сути, @meeting.day_of_meeting — это тикер, который при равенстве @meeting.day я хочу, чтобы @meeting.day_of_workout был сброшен обратно на ‘1’. Происходит то, что @meeting.day_of_meeting никогда не сбрасывается и продолжает увеличиваться. Оба значения являются целыми числами.
Комментарии:
1. Вам нужно будет предоставить больше контекста …
@meeting.day_of_meeting
не похоже, что он когда-либо должен быть равен somethine called@meeting.days
… Может быть, days — это массив, и вы видите, включает ли массив day_of_meeting или что-то в этом роде?2. Это не массив. Это два столбца в одной таблице, которые при равенстве каждому требуют, чтобы day_of_meeting был сброшен обратно на ‘1’.
3. Они оба одного типа (например, целые числа или строки)? Похоже, было бы довольно просто устранить неполадки в консоли?
4. Я обновил вопрос. Надеюсь, это немного понятнее.
5. Это еще один ваш вопрос, который вызывает у меня красный флаг. Вы просите об ОЧЕНЬ странных вещах, и у меня есть внутреннее чувство, что это можно было бы сделать лучше (с точки зрения Rails и дизайна). Может быть, попробуйте задать более общий вопрос и связаться со мной — я буду рад помочь!
Ответ №1:
Не видя больше кода, я предполагаю, что либо @meeting.day_of_meeting, либо @meeting .дни, возможно, строка.
@meeting.day_of_meeting == @meeting.days.to_i
предполагая @meeting.дни — это строка, которую вы можете преобразовать в целое число и сравнить.
Комментарии:
1. Абсолютно правильно. Я проверил это ранее, но по какой-то причине мои глаза обманули меня, заставив думать, что оба были сохранены как целые числа. Спасибо.
Ответ №2:
Возможно, что два списка имеют одинаковое содержимое, но в другом порядке, а затем не совсем одинаковы. Так что попробуйте:
@meeting.day_of_meeting.sort == @meeting.days.sort