2017-03-22 4 views
0

私はレールが初めてで、無限のページを実装しようとしています。コントローラインデックスの は私が持っている:私はボタン「負荷以上のメッセージ」をクリックするとrailsはajaxリクエストのときにのみ変数を割り当てます。逆の場合は

def index 
     @messages = @conversation.messages.order('created_at DESC') 
         .paginate(page: params[:page], 
            per_page: 8) 
     @match = @conversation.match 
     @bid = @conversation.bid unless @conversation.bid.nil? 
     @table = @match.table unless @match.nil? 
     read_message 
     get_participant 
    end 

そして、それは、次のページのメッセージを取得するためのAJAXリクエストを発射します。しかし、今回は@bid、@table変数をもう必要としません。しかし、それが私のコントローラーに達するたびに、データベースに再度当てられます。

私の質問は、それがajaxリクエストのときにのみ特定の変数を割り当てる方法ですか?またはその逆?あなたはAJAXリクエストを送信すると

おかげ

答えて

0

は、あなたが好きな値を持つカスタムヘッダを送信することができます。したがって、trueの値を持つX-IS-AJAX-REQUESTヘッダーのようなものを送信します。これにより、Railsでそのヘッダの値を取得し、条件付きで設定する必要がある変数のみを設定することができます。このようなものが動作する可能性があります:

def index 
    @messages = @conversation.messages.order('created_at DESC') 
        .paginate(page: params[:page], 
           per_page: 8) 
    @match = @conversation.match 
    unless request.headers['X-IS-AJAX-REQUEST'] then 
     @bid = @conversation.bid unless @conversation.bid.nil? 
     @table = @match.table unless @match.nil? 
    end 
    read_message 
    get_participant 
end 
+0

私はrequest.xhrを使用して終了しましたか?レールの組み込みショートカット – Rosalie

関連する問題