1

ある製品を購入するときにユーザーを「バンドル」ページに誘導して、別の製品を追加して購入を「バンドル」して割引を受けることができるようにするアプリを開発中です。

これが私のルートです:

resources :orders, :path_names => { :new => 'checkout' }
match "/orders/bundle" => "orders#bundle", :as => 'bundle_order'
match "/orders/add_product" => "orders#add_product", :as => 'add_product'

これが私のController#Actionです

def bundle
op_client = Client.find_by_name(opposite_client(current_client))
@product = Product.find_by_client_id_and_type_and_status(op_client.id, "subscription", "Active")

respond_with @product
end

このメソッドを実行すると、何らかの理由redirect_toで次のエラーが表示されます。

Unknown action
The action 'show' could not be found for OrdersController

OrdersController に show メソッドがありません。必要がないからです。この問題が発生するのはなぜですか?

4

1 に答える 1

2

このエラーは、2 つの異なる原因によって発生する可能性があります。

最初:

次のようなものを使用しています<%= link_to @order_object %>か?? もしそうなら、これが問題です。

2番目:

この行をroutes.rb変更すると:

resources :orders, :path_names => { :new => 'checkout' }

resources :orders, :path_names => { :new => 'checkout' }, :except => [:show]

これはうまくいくはずです。そうでない場合は、実行に使用しているコードの詳細を教えてくださいredirect_to

于 2012-08-21T15:21:59.757 に答える