0

こんにちは、Rails アプリケーションを持っています。これはコントローラーです

class StreamsController < ApplicationController

  def conversations
    stream_responder do
      @stream = Stream::Conversations.new(current_user, :max_time => max_time)
      @stream_json = PostConversationPresenter.collection_json(@stream.stream_posts, current_user)
    end
  end

def stream_responder(&block)
    yield
    respond_to do |format|
      format.html do
        gon.stream = @stream_json
        render :nothing => true, :layout => "post"
      end
      format.mobile {authenticate_user!; render 'layouts/main_stream' }
      format.json {render :json => @stream_json }
    end
  end
end

私はそれが何を意味するのか知りたいstream_responder doですgon.stream

4

2 に答える 2

0

def conversationはアクションでdef stream_responderあり、ブロックを入力として受け取り、何らかのアクションを実行するように記述されたカスタム関数です。gon.streamはgongemの一部であり、変数の値をjavascript変数としてビューに配置し、後でjavascriptファイルで参照できるようにします。このリンクは、gon gemGonGemについて理解するのに役立ちます

于 2012-08-16T07:57:37.750 に答える
0

stream_responder do ... endstream_responderブロックを渡すメソッドを呼び出します。メソッドシグネチャがでブロックを受け入れ、&blockそのブロックをで呼び出すことがわかりyieldます。

Shreyasの答えも参照してください

于 2012-08-16T07:58:54.693 に答える