【发布时间】:2011-12-11 22:47:42
【问题描述】:
我正在开发一个 Rails 应用程序,在该应用程序中,我想使用 JSON 对象响应 ajax 请求,该对象包含我通过查询数据库在 Rails 控制器中设置的实例变量以及呈现的视图(使用没有模板)。我正在通过以下方式使用after_filter 来完成此操作:
after_filter :handle_ajax
def handle_ajax
respond_to do |format|
format.html
format.json do
data = {}
instance_variables.each {|iv| data[iv] = instance_variable_get(iv) }
data[:url] = request.path
#data[:html] = render_to_string :action => params[:action], :template => false
render :json => data
end
end
end
但是,当我使用它时,Rails 抱怨我调用了两次render(或者在本例中为render 和render_to_string)。这不是处理 ajax 请求的正确方法吗?我对 Rails 比较陌生,所以这很可能不是 RoR 的做事方式。
【问题讨论】:
-
尝试
render_to_string部分
标签: ruby-on-rails ruby ajax ruby-on-rails-3 json