带有 Rails 控制器的 websocket 错误:消息控制器的未定义方法"操作":类



当我尝试加载索引页面时,我一直收到这个错误:

NoMethodError in MessageController#new_message
undefined method `action' for MessageController:Class

如果我用ApplicationController替换BaseController,错误就会消失,但这也破坏了许多其他内容和教程(http://websocket-rails.github.io/)对于rails,websocket将其作为CCD_ 3。

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

有人知道这里出了什么问题吗?

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

似乎这在过去曾被报告为项目问题跟踪器上的一个问题,但已关闭(未修复)。

解释情况的评论:

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

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

相关内容

  • 没有找到相关文章

最新更新