私のroutes.rb:
Temp::Application.routes.draw do
resources :categories, path: '', only: [:index] do
resources :entries, path: '', only: [:index, :show]
end
end
これにより、次のルートが作成されます。
$ rake routes
category_entries GET /:category_id(.:format) entries#index
category_entry GET /:category_id/:id(.:format) entries#show
categories GET / categories#index
質問:次のパラメータをなんとかして指定できますか:: category_id、:id?
詳細...パスでIDではなく名前を使用したいので、これが必要です。例:http://localhost:3000/cat1/ent11
。私のエントリコントローラは次のとおりです。
class EntriesController < ApplicationController
def index
@entries = Category.where(name: params[:category_id]).first.entries
end
def show
entries = Category.where(name: params[:category_id]).first.entries
@entry = entries.select { |e|
e.name == params[:id]
} .first
end
end
このコードは、の代わりに、、のようなものを書くことができれば、より理解しparams[:category_id]
やすくparams[:id]
なりparams[:category_name]
ますparams[:entry_name]
。
これどうやってするの?
更新:ルートを機知に富んだものにしたい...