2

次のような動的ルートを生成する方法を知っていますか?

... (/:parent_id(/:parent_id(/:parent_id(/:parent_id))))/:id

この質問をするのFolderは、ツリーとして機能するモデル (parent_idフィールドがある) があり、そのto_paramメソッドnameparent_id. したがって、 each:parent_idおよび event は:idですname。パスの例を次に示します (4 つのサブフォルダーを含む):

/home/desktop/projects/rails/foobar

...最初の:parent_id(ルート) は「home」で、:id「foobar」です。

ルートの別の例は次のとおりです (1 つのサブフォルダーを使用):

/home/music

...どこで、ご覧のとおり、params[:parent_id] == 'home'そしてparams[:id] == 'music'.

この種の可能なネストされたルートを処理する美しいRails 3ルートを書くきれいな方法はありますか? ありがとう!!

4

1 に答える 1

4

ルートグロバーを使用して、コントローラーで分割してみませんか?

# routes.rb
get "/*folders/:id" => "files#show" 

セクションは、*folders複数の URL セグメントをまとめます。

# files_controller.rb
def show
  folders = params[:folders].split('/') # gives an array of folder names
  # do whatever else necessary
end
于 2011-05-11T22:03:34.693 に答える