0

私はいくつかの本当に奇妙なレールの振る舞いをしています:

ルート.rb:

resources :transactions, except: :show

レーキルートの関連する出力:

       transactions GET    /transactions(.:format)                  transactions#index
                    POST   /transactions(.:format)                  transactions#create
    new_transaction GET    /transactions/new(.:format)              transactions#new
   edit_transaction GET    /transactions/:id/edit(.:format)         transactions#edit
        transaction PUT    /transactions/:id(.:format)              transactions#update
                    DELETE /transactions/:id(.:format)              transactions#destroy

ビューのコード:

<% if ( current_page?( new_transaction_path ) || current_page?( edit_transaction_path ) ) %>
  # Do something in here
<% end %>

エラー:

Completed 500 Internal Server Error in 20ms

ActionController::RoutingError (No route matches {:action=>"edit", :controller=>"transactions"}):

パーツを外すと動作し|| current_page?( edit_transaction_path )ます。

私は何か間違っていましたか、それともこれはバグですか?

4

1 に答える 1

2

トランザクションオブジェクトをedit_transaction_pathに渡してみてください。edit_transaction_path(@transaction)

current_page?( :action => "edit", :controller => "transactions")-はい、これが最善の方法だと思います。

于 2012-05-17T20:23:01.987 に答える