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
代替。