【发布时间】:2011-01-22 16:34:37
【问题描述】:
我需要渲染一些没有布局的视图。 跳过线 :render :layout=>false 和 if else 来自控制器操作的逻辑, 我有自定义 mime 类型,如 phtml(纯 html)。
Mime::Type.register "text/phtml", :phtml
这种格式需要渲染相同的 html 视图,但只是没有布局。我用 app.js 中的这段代码完成了这个。控制器:
before_filter proc { |controller|
if params[:format] && params[:format]=='phtml'
controller.action_has_layout = false
controller.request.format = 'html'
end
}
首先,这很难看,其次我无法再从控制器中控制这种格式:
respond_to :phtml,:only=>:index
因为它总是以请求的 phtml 格式呈现视图。 有更好的解决方案吗?例子?如何为视图格式设置别名?
非常感谢
【问题讨论】:
-
我一直认为
.phtml是用于 PHP/PERL 风格的 HTML。 -
你是对的。可以是 .plain_html...这不是重点...
-
我也有这个问题,我还需要一种渲染“纯 html”的方法。 必须有一个很好的方法来做到这一点,因为肯定会出现很多。我不想重复我所有的控制器操作(不是很干)。我还不知道一个好的解决方案,但你的信息对我有帮助,谢谢。
-
关于内容类型,我个人仍然将我的自定义扩展名声明为“text/html”,因为它就是这样——只是使用了不同的扩展名。就像“.htm”和“.html”都是“text/html”一样。
标签: ruby-on-rails-3 views format alias