在几个教程中(甚至一个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建造的东西?