我正在构建一个Rails应用程序,其中用户有很多事件。
如果用户有一个事件并且我current_user.events.each
那么一切都很好,但如果用户没有任何事件,则会抛出未定义的方法错误并且整个应用程序停止工作。
作为PHP用户,我首先要检查变量是否在循环之前设置了。 Rails是否有一种很好的方法可以在模型中启动方法,无论我还是应该检查?
答案 0 :(得分:2)
current_user.events.try(:each)
如果each
不为零,则会返回events
的常规输出,否则将返回nil
,而不会出错。
答案 1 :(得分:0)
你可以做到
if current_user.events # This ensures that that the user at least has 1 event
current_user.events.each
# rest of the code
end
答案 2 :(得分:0)
对于较新版本的rails,不应该使用空白数组(如果你有一个数组)。
总是.empty?
if !current_user.events.empty?
..
end