我在我的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。
我该如何解决这个零问题?任何帮助将不胜感激。
答案 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调用中获取它。