Rails 4未定义的方法`any?'为零:NilClass

时间:2016-10-11 17:40:30

标签: ruby-on-rails-4

我在我的RoR应用程序上运行聊天应用程序。我希望能够从我的布局/ application.html.erb呈现用户聊天对话以在所有页面上进行用户聊天对话,但聊天仅在我在用户控制器下运行索引操作方法时才有效[class UsersController&lt ; ApplicationController的。当我在views / users / index.html.erb上进行聊天时运行得很好。只是为了让它在所有页面中都可用,我在名为_chatlist.html.erb的views / users下创建了一个渲染表单,里面有这一行:

  

并在我的layouts / application.html.erb正文中呈现此表单: <%= render partial:'users / chatlist'%>  当我这样做时,我得到这个错误:未定义的方法`any?'为零:NilClass。

我该如何解决这个零问题?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您收到该错误是因为@conversations未初始化。 如果要在所有页面上使用它,则必须编写一个方法并在application_controller.rb中调用它。您的application_controller.rb应该是这样的。

class ApplicationController < ActionController::Base
  before_filter :load_conversatios

  def load_conversatios
    # load you conversation here
    @conversations = Conversation.all
  end

end

我认为这并不是一个很好的方法来加载所有页面上的所有对话。你必须从ajax调用中获取它。