Ruby on rails 带有rails控制器的websocket错误:未定义的方法'action';对于MessageController:Class

Ruby on rails 带有rails控制器的websocket错误:未定义的方法'action';对于MessageController:Class,ruby-on-rails,ruby,controller,websocket,Ruby On Rails,Ruby,Controller,Websocket,当我尝试加载索引页时,不断出现此错误: NoMethodError in MessageController#new_message undefined method `action' for MessageController:Class 如果我将BaseController替换为ApplicationController,错误就会消失,但这也破坏了许多其他东西,rails websocket的教程()将其命名为BaseController class MessageController &

当我尝试加载索引页时,不断出现此错误:

NoMethodError in MessageController#new_message
undefined method `action' for MessageController:Class
如果我将
BaseController
替换为
ApplicationController
,错误就会消失,但这也破坏了许多其他东西,rails websocket的教程()将其命名为
BaseController

class MessageController <  WebsocketRails::BaseController

  def initialize_session
    # perform application setup here
    controller_store[:message_count] = 0
  end

  def new_message
    new_message = {:message => 'this is a message'}
    send_message :new_message, new_message
  end

  def index

  end
end
class MessageController'这是一条消息'}
发送消息:新消息,新消息
结束
def索引
结束
结束
有人知道这里有什么问题吗

-- 编辑 使用rails版本4.0.2 如果这很重要的话

这似乎在项目的问题追踪器上已经出现过,但已经关闭(没有修复)

解释情况的评论如下:

您不希望将ApplicationController方法与WebsocketRails::BaseController中的方法混合使用。事实上,WebsocketRails::BaseController是在ApplicationController之后设计的,并实现了一些相同的方法,即process\u action


我使用的解决方案(他们也建议)是使用2个控制器。一个继承自WebsocketRails::BaseController,另一个继承自ActionController::Base(Rails)。将您的逻辑放在一个单独的类中,并从这两个类中使用它。

您如何访问它?我有一个类似的问题。最后,我为WebsocketRails::BaseController使用了另一个控制器来处理websocket事件。我认为这与索引、创建等的路径有关。。。我认为WebsocketRails::BaseController无法处理路由请求。您提供的参考链接中的
create
可能只是为了
create
而不是一个REST方法。否则,可能与rails 4.0.2不兼容,或者可能存在错误。我希望有人能回答这个问题。