【问题标题】:Trouble on rendering the template without layout on performing AJAX HTTP requests在执行 AJAX HTTP 请求时呈现没有布局的模板时出现问题
【发布时间】:2011-09-05 20:19:10
【问题描述】:

我正在使用 Ruby on Rails 3.0.10 和 jQuery 1.6。我试图在控制器操作中处理与模板渲染相关的行为。我正在考虑根据参数请求渲染或不渲染布局(更多信息请参见下面的代码)。

在我的控制器中,响应器是这样实现的:

def show
  respond_to do |format|
    format.html { render :layout => params[:layout] } # I am using the 'params[:layout]' (boolean) in order to handle the layout rendering.
  end
end

所以,如果我浏览http://website.com/articles/1 URL,它会加载视图模板 没有布局。

现在,如果我执行如下 AJAX HTTP 请求

  $jQ.ajax({
    type:    'GET',
    url:     '<%= article_url(@article) %>',
    data:    'layout=false', # Here I set the parameter 'params[:layout]' so to not render the 'layout' in the related controller action
    error:   function(jqXHR, textStatus, errorThrown) {
      ...
    },
    success: function(data, textStatus, jqXHR) {
      ...

      div_jquery_object.html(data);
    }
  });

它加载视图模板布局。

AJAX HTTP 请求是否应该返回模板没有布局?我该怎么做?

【问题讨论】:

    标签: jquery ruby-on-rails ruby ajax rendering


    【解决方案1】:

    params[:layout] 是一个字符串。

    如果你不想要任何布局,你应该传递false,而不是"false"

    所以你应该使用一些case 声明。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-23
      • 2017-05-02
      • 1970-01-01
      • 2015-12-29
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多