2016-10-11 7 views
0

私はRoRアプリケーションでチャットアプリケーションを実行しています。レイアウト/ application.html.erbのユーザーチャットの会話をレンダリングして、ユーザーがすべてのページで会話をチャットできるようにしたいのですが、チャットはユーザーのコントローラー[index UsersController < ApplicationController]。私がview/users/index.html.erbで私のチャットをしていると、うまくいく。ちょうど私がビュー/ユーザーの下でのレンダリングのフォームを作成したすべてのページでそれを利用できるようにするの内側にこのラインを持っている_chatlist.html.erb呼ば:としてapplication.html.erb体/Rails 4の未定義メソッド `any? 'なしの場合:NilClass

を、私のレイアウトでこのフォームをレンダリング: <%=レンダリングパーシャル: 'users/chatlist'%> 私はこのエラーが発生します:未定義のメソッド `any? 'なしの場合:NilClass。

どうすればこの問題を解決できますか?どんな助けもありがとう。

+0

申し訳ありませんが、私のフォーム_chatlist.html.erbのコード行は<%if @ conversations.anyですか? %> – aminhs

+1

あなたの部分に '@ conversations'を渡す必要があります。 '%% render partial: 'users/chatlist'、会話:@conversations%>'を試し、会話の場合は%に切り替えてください。 %> 'である。 – shawnbro

答えて

0

@conversationsが初期化されていないため、このエラーが発生しています。 メソッドをすべてのページで使用できるようにするには、メソッドを記述してapplication_controller.rbで呼び出す必要があります。 application_controller.rbは次のようになります。

class ApplicationController < ActionController::Base 
    before_filter :load_conversatios 

    def load_conversatios 
    # load you conversation here 
    @conversations = Conversation.all 
    end 

end 

これは、すべての会話をすべてのページに読み込むのには適していないと思います。あなたはajaxコールから利用可能にする必要があります。

+0

チャットの会話はajaxコールから利用できます。私はこのチュートリアルに従った。 http://josephndungu.com/tutorials/gmail-like-chat-application-in-ruby-on-rails – aminhs

+0

アイデアは、ユーザーが自分のアプリでページ間を移動するときにチャットの会話を利用できるようにすることです。今すぐユーザーがview/users/index.html.erbにチャットボックスを開いて、別のページに移動した場合、チャットボックスが閉じます。 – aminhs

関連する問題