1

私は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/...

これは可能ですか?

4

1 に答える 1

1

私が知る限り、これを行う簡単な方法はありません。

これを行う最善の方法は、一連の名前付きルートを使用することだと思います。

私はこれをテストしていないので、保証はありませんが、失敗した場合でもヒントが得られるはずです。

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 を取得する必要があります。祖先の存在に基づいてリソース パスまたは名前付きルート パスを動的に選択できるヘルパーに抽出する方がよい場合があります。

于 2009-11-08T19:14:50.820 に答える