2016-01-21 45 views
11

actioncableでRails 5を使用していて、何かを送信しようとするとthis errorが返ってきますactioncableどうすればいいですか? 私はプロジェクトをHerokuにプッシュしようとしています。Rails 5 actioncable未定義のメソッドfetchをnilにする:NilClass

NoMethodError in MessagesController#create 

undefined method `fetch' for nil:NilClass 
Extracted source (around line #37): 

#35  # Also makes sure proper dependencies are required. 
#36  def pubsub_adapter 
*37   adapter = (cable.fetch('adapter') { 'redis' }) 
#38   path_to_adapter = "action_cable/subscription_adapter/#{adapter}" 
#39   begin 
#40   require path_to_adapter 

Extracted source (around line #50): 

#48  # Adapter used for all streams/broadcasting. 
#49  def pubsub 
*50   @pubsub ||= config.pubsub_adapter.new(self) 
#51  end 
#52 
#53  # All the identifiers applied to the connection class associated with this server. 

Extracted source (around line #42): 

#40   def broadcast(message) 
#41    server.logger.info "[ActionCable] Broadcasting to #{broadcasting}: #{message}" 
*42    server.pubsub.broadcast broadcasting, ActiveSupport::JSON.encode(message) 
#43   end 
#44   end 
#45  end 


Rails.root: /media/adham/Data/code/rails5test 

Application Trace 
app/controllers/messages_controller.rb:6:in `create' 
app/middleware/chat_action_cable.rb:10:in `call' 
+0

'cable.fetch'が呼び出されたとき、' cable'は 'nil'のように聞こえます。それは事実ですか? –

答えて

15

ありましたコミットここで行わ:enter link description here

て読みからActionCableのための設定ファイルを変更...

config/redis/cable.yml

config/cable.yml

...問題を修正しました。このアップデートは、ActionCableのバックエンドが無関係であることを可能にするものです。

+0

ありがとうございます:D –

+1

これはなぜ起こるのか説明できますか? Rails 5.0.0.beta2でも私に起こった – ftshtw

+0

Redisにデフォルト設定するのではなく、設定ファイルをActionCableバックエンドにあいまいに変更しました。 –

関連する問題