Ruby on rails 获取未定义的方法'include?&x27;零级:零级
我试图按照教程创建一个消息传递应用程序,但在创建对话控制器时,我遇到了一个错误。我的目标是检查当前用户和所选用户之间是否存在对话。如果它不存在,那么我想创建一个新的。 但是当我试着这样做时,我从吼叫中得到了错误。这将是一个很大的帮助 错误日志Ruby on rails 获取未定义的方法'include?&x27;零级:零级,ruby-on-rails,Ruby On Rails,我试图按照教程创建一个消息传递应用程序,但在创建对话控制器时,我遇到了一个错误。我的目标是检查当前用户和所选用户之间是否存在对话。如果它不存在,那么我想创建一个新的。 但是当我试着这样做时,我从吼叫中得到了错误。这将是一个很大的帮助 错误日志 NoMethodError (undefined method `include?' for nil:NilClass): app/controllers/conversations_controller.rb:30:in `conversated?
NoMethodError (undefined method `include?' for nil:NilClass):
app/controllers/conversations_controller.rb:30:in `conversated?'
我的控制器来自对话
def create
@conversation = Conversation.get(current_user.id, params[:user_id])
add_to_conversations unless conversated?
end
private
def conversated?
session[:conversations].include?(@conversation.id)
end
如果您需要在问题中添加任何其他部分,请告诉我。提前感谢。当您第一次调用
会话[:conversations]
时,值似乎是nil
,而这样的include?
不是nil
知道如何响应的方法。我认为您可以在该检查中做一些小调整,如下所示:
def conversated?
session[:conversations]&.include?(@conversation.id)
end
&
是一个安全的导航操作符,只有当值存在时才会调用该方法。只是一个注释,conversated
不是一个单词,您可以使用conversated
代替。