0

あらゆる種類のルートが定義された本のモデルがあります。

resources :books do
    member do
      get 'printable_version'
    end
    collection do
      get 'search'
      get 'recently_added'
    end
    resources :pages do
      collection do
        get 'new'
        get 'edit_all'
        post 'update_all'
      end
    end
  # I put a namespace declaration here 
  # namespace :marketing do 
  #   get 'mini_flyer'
  # end
  end

今欲しいのは「マーケティング」の「サブディレクトリ」です。つまり、次のようなルートにアクセスできるようにしたいと考えています。

/books/24/marketing/mini_flyerまた/book/10/marketing/large_flyer

名前空間をリソース ブロックに入れようとしましたが、これは私が得たものですrake routes:

book_marketing_mini_flyer GET    /books/:book_id/marketing/mini_flyer(.:format) marketing/books#mini_flyer

このルートは/app/controllers/marketing/books_controller.rb、実際には に行きたいときに に一致し/app/controllers/books/marketing_controller.rbます。それは可能ですか?

- 編集 -

私はこのルートに行くこともできます(しゃれが意図されています):

resources :books do
  resource :marketing, to: "books/marketing" do
    collection do
      get 'mini_flyer'
    end
  end 
end

ただし、これが最適かどうかはわかりません。

4

2 に答える 2

1

はい、少し変更して編集ルートに従います

resources :books do
  resources :marketing do
    collection do
      get :mini_flyer
      get 'larde_flyer'
    end
  end 
end

それはうまくいくでしょう、そして私はそれが最高のものになると思います

于 2014-10-17T08:45:10.457 に答える
1

で行ったように、コントローラーとモデルを使用してネストされたリソースを作成してみませんかMarketing(モデルは AR テーブルに関連付ける必要はなく、単純な Ruby クラスでもかまいません) Page。このidリソースの はlarde_flyermini_flyerなどによって、コントローラーのホワイトリストを介して確認できます (例: before_filter を使用)。

于 2013-07-09T17:49:17.903 に答える