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是 gon gem 的一部分,它有助于将变量的值作为 javascript 变量放入视图中,以便您以后可以在 javascript 文件中引用它们。此链接将帮助您了解 gon gem Gon Gem

于 2012-08-16T07:57:37.750 回答
0

stream_responder do ... end调用stream_responder在块中传递的方法。您可以看到方法签名接受带有 的块&block并使用 调用该块yield

也见 Shreyas 的回答

于 2012-08-16T07:58:54.693 回答