是否可以覆盖Rails对:html
响应的呈现行为?我想总是渲染相同的模板(忽略魔术视图的发现)。
我正在编写一个单页应用程序,这似乎应该是可能的...基本上如果它被请求为:json
它应该呈现JSON,但如果它被请求为:html
它应该无论如何将数据传递到同一视图(它将在体内呈现为JSON)。
答案 0 :(得分:1)
尝试删除application.html.erb上的yield部分,然后您将始终获得application.html.erb而不会有任何部分内容。
答案 1 :(得分:0)
如果您定义一个视图,然后在每个控制器上执行每个操作后呈现该视图,该怎么办?像这样:
应用程序/控制器/ home_controller.rb
class HomeController < ApplicationController
def home
end
end
应用程序/视图/家/ home.html.erb
<!-- Whatever html code and script tags here -->
应用程序/控制器/ another_controller.rb
class AnotherController < ApplicationController
def action
render "home/home"
end
end
你甚至可以定义一个after_filter
我试过这个并且它有效。后过滤器似乎不起作用。
答案 2 :(得分:0)
为什么不将JSON数据作为实例变量传递?
<强>控制器强>
@json_data = whatever_model.to_json
<强> application.html.erb 强>
<script>
<%= @json_data %>
</script>