这是堆栈:
nil:NilClass的未定义方法“ class_name”是什么意思? class_eval
def redirect_based_on_shift_state
redirect_to new_shift_call_list_path(created_shifts) if current_user && created_shifts = current_user.shifts.in_state(:created).first
end
Class < User
self.primary_key = 'guid'
has_many :shifts, foreign_key: 'user_guid', primary_key: 'guid'
Class < Shift
belongs_to :user, foreign_key: 'user_guid', primary_key: 'guid
我已经在每个模型中添加了class_name,以明确地指定它,尽管我没有使用其他的类名。希望能够解决此问题,但是没有。这是在我将ruby从2.2.1升级到2.5.1并运行bundle update --conservative之后发生的。 感谢您的帮助!
答案 0 :(得分:0)
这可能与运算符优先级有关。尝试将created_shifts
分配移到另一行。
def redirect_based_on_shift_state
return unless current_user
created_shifts = current_user.shifts.in_state(:created).first
return unless created_shifts
redirect_to new_shift_call_list_path(created_shifts)
end
如果仍然发生错误,这也使得发现问题更加容易。通过对多行进行逻辑处理,指向某行的堆栈也更加准确,因为每行发生的次数较少。