0

ここにroutes.dbがあります

resources :licenses  do 
 resources :sublicenses do
  resources :time_licenses
 end
end

次に、新しい time_licenses を作成するために time_licenses_controller を呼び出すクライアント アプリケーションがあり、コントローラーは json ファイルで応答しますが、ビューを表示する必要はありません。

代わりに、すべてのサブライセンスのすべての time_licenses を含むインデックス ファイルをクライアントに表示する必要があります。それが道です

license/:id/sublilicense/:id/time_lincenses

今、ルートに問題があります。time_licenses_controller で create を呼び出すと、次のエラーが発生します。

No route matches "/time_licenses.js"

このようにroutes.dbファイルを変更することで解決できます

resources :time_licenses
resources :licenses  do 
 resources :sublicenses
end

しかし、その場合、インデックスビューをリンクするときに同じエラーが発生します。

あなたは私に何を提案しますか?2 つの異なるコントローラーを作成する必要がありますか?

4

1 に答える 1

0

ネストされたリソースを使用しているため、timelicense へのパスを指定する際に、常にライセンスとサブライセンスを指定する必要があります。パス ヘルパーは次のようになります。

license_sublicense_timelicense_path(@license, @sublicense, @timelicense) and so on

タイムライセンスのパス名を取得するには、

rake routes

不明な点がある場合は、 Rails ガイド (ネストされたリソース)を参照してください。

于 2012-04-25T04:48:57.137 に答える