0

リダイレクトできるようにしたい URL があります。

次のようなもの:

「http://localhost:3000/ユーザー名/管理者/ページ」。

routes.rb に次のような一致があります。

  match ':account/admin/:page' => "admin#index"

私はリダイレクトコードを持っています:

redirect_to :controller => account.username, :action=>"admin", :page=>"index"

ただし、これにはルーティング エラーが発生します。

No route matches {:action=>"admin", :controller=>"sdunn", :page=>"index"}

自分のしたことが間違っていることはわかっていますが、どうすればこれを修正できますか?

どうもありがとう。

4

1 に答える 1

2

ルートは 2 つのパラメーターを想定しています。最初のパラメーターは :account、2 つ目は :page です。:page のみを渡していると思います。:as => 'some_name' をルートに追加してから、 _path を使用します。

ルート.rb

match ':account/admin/:page' => "admin#index", :as => 'my_route'

コントローラ:

redirect_to my_route_path(@user, @page)

my_route_path は、正確なルート ファイルに応じて異なるものになる可能性があるため、使用します

rake routes | grep my_route

正確な名前を確認するには、末尾に _path を追加します。

于 2012-10-02T19:07:47.547 に答える