什么是" Rails方式"? ActionCable频道与控制器

时间:2016-07-15 07:47:35

标签: ruby-on-rails ruby-on-rails-5 actioncable

在几个教程中(甚至一个David Heinemeier Hansson),我们鼓励您使用x_channel.rb文件中的方法来create新消息。

它看起来像这样(来自David的教程):

class RoomChannel < ApplicationCable::Channel
  def subscribed
    stream_from "room_channel"
  end

  def unsubscribed
    # Any cleanup needed when channel is unsubscribed
  end

  def speak
    Message.create! content: data['message']
  end
end

然后,他仅使用messages_controller.rb设置after_create_commit,以便向所有订阅者广播消息。

JavaScript调用speak方法。

现在,我在想,为什么要使用频道呢?我也可以摆脱speak方法,而是将create方法放在messages_controller.rb内,如下所示:

def create
  Message.create! content: data['message']
end

(显然比那更复杂但是为了演示)。在视图中,我将使用普通旧表单和AJAX请求来调用create方法。

现在,我想知道这两个选项中哪一个是最好的还是&#34; Rails Way&#34;处理这个。

是吗&#34;一旦你使用频道,就可以在那里做所有事情&#34;?或者更确切地说,#34;尽可能多地继续使用控制器。这是他们为#34建造的东西?

0 个答案:

没有答案