描述here似乎意味着stream_for
僅在傳遞記錄時使用,但總體上文檔相當模糊。任何人都可以解釋stream_from
和stream_for
之間的區別,以及爲什麼您會使用另一個?ActionCable中`stream_from`和`stream_for`有什麼區別?
5
A
回答
7
stream_for
只是一個簡單的包裝方法stream_from
。
當你需要的是關係到一個特定模型的流,stream_for
自動模式和渠道爲您生成廣播。
讓我們假設你有ChatRoom
類的實例chat_room
,
stream_from "chat_rooms:#{chat_room.to_gid_param}"
或
stream_for chat_room # equivalent with stream_from "chat_rooms:Z2lkOi8vVGVzdEFwcC9Qb3N0LzE"
的兩行代碼做同樣的事情。
https://github.com/rails/rails/blob/master/actioncable/lib/action_cable/channel/streams.rb
0
kevinhyunilkim's answer 幾乎是好的,但前綴取決於CHANNEL_NAME,而不是模型類。
class CommentsChannel < ApplicationCable::Channel
def subscribed
stream_for article
# is equivalent to
stream_from "#{self.channel_name}:{article.to_gid_param}"
# in this class this means
stream_from "comments:{article.to_gid_param}"
end
private
# any activerecord instance has 'to_gid_param'
def article
Article.find_by(id: params[:article_id])
end
end
,你也可以通過簡單的字符串stream_for
這只是增加了頻道名稱。
相關問題
- 1. 有什麼區別`和$(Bash中有什麼區別?
- 2. ==和===有什麼區別?
- 3. ==和===有什麼區別?
- 4. 有什麼區別? :和||
- 5. ==和===有什麼區別?
- 6. '=='和'==='有什麼區別?
- 7. `&`和`ref`有什麼區別?
- 8. 有什麼區別:。!和:r!?
- 9. | 0和~~有什麼區別?
- 10. Appender和〜有什麼區別?
- 11. xtype和別名有什麼區別?
- 12. XSD中IDREF和IDREFS有什麼區別?
- 13. COM中IDispatch和IUnkown有什麼區別?
- 14. 在JavaScript中,'\'和'\ n'有什麼區別?
- 15. =和在mysql中有什麼區別?
- 16. Lisp中'和#'有什麼區別?
- 17. python中的{}和[]有什麼區別?
- 18. 在Ember.js中,[]和Ember.A([])有什麼區別?
- 19. VB6中Sub和Function有什麼區別?
- 20. 列表中的:::和++有什麼區別?
- 21. C++中#import和#include有什麼區別?
- 22. printf中%c和%C有什麼區別?
- 23. wordpress中is_page()和is_paged()有什麼區別?
- 24. Java中boolean和Boolean有什麼區別?
- 25. SQL中的「LIKE」和「=」有什麼區別?
- 26. vim中de和dw有什麼區別?
- 27. Visual Studio中//和///有什麼區別?
- 28. Java中> =和=>有什麼區別?
- 29. symfony中lib /和plugins /有什麼區別?
- 30. wordpress中wp_siteurl和wp_homeurl有什麼區別?
'to_gid_param'部分的要點是什麼?你不能只說'chat_room _#{params [:chat_room_id]}'嗎? –
難道僅僅用於編碼任意字符串成一個有效的非空白字符串?或者有沒有其他想法背後呢?當有一個特定的記錄(或記錄和關聯),我們希望有關更新 –
'stream_for使用。引擎蓋下,作用電纜被用於生成該記錄或記錄和公司章程的唯一字符串,然後調用stream_for [原文如此 - 也許應該是「stream_from」] method.'Source:https://www.sitepoint.com /動作電纜和 - 的WebSockets-的縱深教程/ –