我正在使用具有自己的路由功能的客戶端框架的Rails應用程序。我想使用pushState路由,所以Rails路由器需要配置爲響應這些請求(很簡單)。迴應所有與佈局的HTML請求
有沒有一種簡單的方法來設置所有的HTML請求與一個有效的路由,只需要一個佈局,而不必混亂我的意見文件夾與一堆空白action.html.erb
文件?
我正在使用具有自己的路由功能的客戶端框架的Rails應用程序。我想使用pushState路由,所以Rails路由器需要配置爲響應這些請求(很簡單)。迴應所有與佈局的HTML請求
有沒有一種簡單的方法來設置所有的HTML請求與一個有效的路由,只需要一個佈局,而不必混亂我的意見文件夾與一堆空白action.html.erb
文件?
def my_action
respond_to do |format|
format.html { render 'my_unified_view' }
end
這裏的攔截請求的有效途徑和渲染視圖爲每個非Ajax請求的方式:
應用程序/控制器/ application_controller.rb:
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :render_default_view
# ...
private
def render_default_view
return if request.xhr?
respond_to do |format|
format.html { render 'public/default_view.html', :layout => nil }
end
end
end
我想這是你想要的,對吧?
謝謝,但有沒有更乾的方式來做到這一點? – user1539664 2012-07-21 14:13:21
您可以將respond_to塊放入ApplicationController中的方法中,並在操作結束時調用它。我確定有一些東西你可以用猴子補丁來渲染你的視圖,而不是默認的action.html模板,但是這似乎有點過分。 – cpuguy83 2012-07-21 14:51:25