1

レールでグロビングをルーティングするために例外を追加できるかどうか疑問に思っていました。私のroutes.rbには

    unless params[:not_found].eql? 'admin_data'
         match '*not_found', to: 'errors#error_404'
    end

ユーザーがアクセスした場合を除いて、カスタムエラーページを強制しようとしています

myapp.heroku.com/admin_data

パラメータとして :not_found を取得しているようには見えません。routes.rb に例外を追加する方法はありますか?

それが役立つ場合は、私のerrors_controllerに..

  def error_404
        @not_found_path = params[:not_found]
  end

ありがとうございました

更新します。

私はちょうどやってみました

puts :not_found
puts %{not_found}

うーん...私はユーザーからパラメータを取得できるかどうかを確認しようとしています

4

2 に答える 2

1

ルート.rbで許可されたルートを定義し、ルーティングエラーの例外処理をアプリケーションコントローラーに追加すると、はるかに便利です。

class ApplicationController < ActionController::Base
  rescue_from ActionController::RoutingError, :with => :render_not_found

  private
    def render_not_found 
      render_error_page_for(404)
    end

    def render_error_page_for(code)
      respond_to do |format|
      format.html { render :file => "#{Rails.root}/public/#{code}.html", :status => code, :layout => false }
    end
end
于 2012-05-27T06:20:51.597 に答える
0

アプリケーションコントローラーで例外処理をキャッチしますが、残念ながらadmin_dataについては、routes.rbで明示的に設定していません。名前空間などでgemのどこかに設定されます(よくわかりません)

しかし、前向きなことに...私はついにそれを修正しました!グロブを変更して...

match '*not_found', to: 'errors#error_404', :constraints => {:subdomain => "!(admin_data.)"}

admin_data を使用するすべてを無視します。

于 2012-05-27T06:31:35.290 に答える