У меня есть модель user.rb (это ActiveRecord :: Base, не уверен, имеет ли она отношение к обсуждению)
В некоторых представлениях я сравниваю двух пользователей с помощью:
<% if current_user == user %>
Результат недетерминированный (иногда результат истинный, а иногда ложный), и я не уверен, почему.
Если я переключу его на
<% if current_user.id == user.id %>
Он работает какожидается.Но тогда мне нужно разобраться со случаем, когда пользователь (-и) может быть нулевым.
Мой вопрос: что здесь происходит?
Почему user1 == user2 терпит неудачу здесь?
Должен ли я переопределять ==, или
Должен ли я использовать альтернативный метод, например, равный ?, === или eql?
Не должен ли тот факт, что пользователь.rb - это ActiveRecord :: Base mean == по умолчанию сравнивает уже поля id?