2

我有一个由 AJAX 调用的方法:

def showplain
    .............
    respond_to do |format|
      format.html { render :layout => false, :partial => "content"}
    end
end

这在 Webrick 中有效,但在 Apache2 + Phusion Passenger 上会导致错误。

错误是:

ActionView::MissingTemplate(缺少模板 myitems/showplain)

如果我创建 showplain.html.erb:

<%= render :layout => false, :partial => "content" %>

它在 AJAX 框架中向我显示整页,带有布局。

似乎忽略了 :layout => false 参数。如何让它在没有布局的情况下显示部分?

match 'myitems/showplain' => 'myitems#showplain', :via => :get
4

2 回答 2

1

在渲染之前发生了异常。

我写

begin
  .........
rescue => ex
  .........
end
render :layout => false, :partial => "content"

删除了 showplain.html.erb,现在一切正常。

于 2012-04-19T06:22:04.213 回答
0

您谈论 AJAX。要响应 ajax 请求,您需要使用 js 格式来响应您的应用程序。

def showplain
    .............
    respond_to do |format|
      format.html { render :layout => false, :partial => "content"}
      format.js { render :layout => false, :partial => "content"}
    end
end

你用 js 格式调用你的路由。

我希望它有帮助

于 2012-04-18T14:50:50.380 回答