11

current_page を使用しているときにルートが不思議なことに検出できなくなった経験をした人はいますか? Rails 3で?ルート、ビュー、およびコントローラーを備えた完全に生成されたスキャフォールドを使用しても、「ルートが一致しません」というエラーが発生します。

コードは次のとおりです。

if current_page?(:controller => 'users', :action => "show")

「match」コマンドをroutes.rbに追加すると問題なく動作しますが、リソースがすでに作成されているのになぜそれを行う必要があるのでしょうか? 私は何が欠けていますか?

4

3 に答える 3

20

現在のコントローラーをテストするだけの場合は、次の操作を実行できます。

if params[:controller] == 'users'

同様に、名前空間付きコントローラーを使用している場合は、スラッシュを使用して名前空間とコントローラー名を区切ることができます。次に例を示します。

if params[:controller] == 'advertising/users'
于 2012-02-27T04:03:44.710 に答える
18

idこのヘルパーのパラメーターがありません:

current_page?(:controller => "users", :action => "show", :id => "1")

完全なルートを通過することを期待しています。これを望まず、コントローラーとアクションのみを一致させたい場合は、独自にコーディングすることをお勧めします。

于 2011-04-11T21:49:30.827 に答える