私はFolder
モデルを持っていacts_as_tree
ます。
ルートがフォルダ構造を表す可能性はありますか?
フォルダー:
1: Folder A
2: Folder B
3: Folder C
4: Folder D
5: Folder E
ルート:
/folders/1
/folders/1/2
/folders/1/3/4
/folders/1/2/new
/folders/...
これは可能ですか?
私はFolder
モデルを持っていacts_as_tree
ます。
ルートがフォルダ構造を表す可能性はありますか?
フォルダー:
1: Folder A
2: Folder B
3: Folder C
4: Folder D
5: Folder E
ルート:
/folders/1
/folders/1/2
/folders/1/3/4
/folders/1/2/new
/folders/...
これは可能ですか?
私が知る限り、これを行う簡単な方法はありません。
これを行う最善の方法は、一連の名前付きルートを使用することだと思います。
私はこれをテストしていないので、保証はありませんが、失敗した場合でもヒントが得られるはずです。
map.my_new_folder '/folders/:ancestors/:id/new', :controller => "folders",
:action => "new", :ancestors => /^(\d+\/?)*$/
map.my_show_folder, '/folders/:ancestors/:id', :controller => "folders",
:action => "show", :ancestors => /^(\d+\/?)*$/
map.my_edit_folder '/folders/:ancestors/:id/edit', :controller => "folders",
:action => "edit", :ancestors => /^(\d+\/?)*$/
...
祖先文字列を自分で作成し、オプションとして my_x_folder_path に渡す必要があります。ただし、必要なきれいな URL を取得する必要があります。祖先の存在に基づいてリソース パスまたは名前付きルート パスを動的に選択できるヘルパーに抽出する方がよい場合があります。