私は、独自のルーティング機能を備えたクライアント側フレームワークを使用する Rails アプリに取り組んでいます。pushState ルーティングを使用したいので、Rails ルーターをそのようなリクエストに応答するように構成する必要があります (簡単です)。
ビューフォルダーを空のaction.html.erb
ファイルでいっぱいにすることなく、レイアウトだけで応答する有効なルートを持つすべての HTML リクエストを設定する簡単な方法はありますか?
私は、独自のルーティング機能を備えたクライアント側フレームワークを使用する Rails アプリに取り組んでいます。pushState ルーティングを使用したいので、Rails ルーターをそのようなリクエストに応答するように構成する必要があります (簡単です)。
ビューフォルダーを空のaction.html.erb
ファイルでいっぱいにすることなく、レイアウトだけで応答する有効なルートを持つすべての HTML リクエストを設定する簡単な方法はありますか?
有効なルートへのリクエストをインターセプトし、すべての非 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
これはあなたが望むことだと思いますよね?
def my_action
respond_to do |format|
format.html { render 'my_unified_view' }
end