2

Railsでこの目標を1か所で達成するための適切なソリューションはありますか?(できればroutes.rb)。今、リダイレクトするために、次のようなbeforeフィルターを作成しました。

...
unless [temp_url].include? request.url
  redirect_to temp_path
end

このアプローチは、既知のルートで機能します。不明なルートは404エラーになります。不明な場合は、これを次の場所で使用できますroutes.rb

match "/*other" => redirect("/temp/index")

requestどうやら、のオブジェクトにアクセスできませんroutes.rb。で既知と未知の両方のリダイレクトをカバーするためのより良い解決策はありroutes.rbますか?

4

2 に答える 2

2

ルートへの不明なルートのリダイレクト

routes.rb

match '*path' => redirect('/')

上記を使用して、すべての不明なルートをルートにリダイレクトできます。

于 2013-01-23T11:14:36.103 に答える
0

詳しく見てくださいbefore_filter

たとえば、次のコードは常に、表示、編集、更新、および破棄エンドポイントで find_post メソッドを呼び出します。ケースにも同じロジックを使用できます。

class PostsController < ApplicationController
  before_filter :find_post, :only => [:show, :edit, :update, :destroy]

  def update
    @post.update_attributes(params[:post])
  end

  def destroy
    @post.destroy
  end

  protected    
    def find_post
      @post = current_user.posts.find(params[:id])
    end
end
于 2013-01-23T11:12:39.120 に答える