rails:2596
From: Shin Morichika <ofl@c...>
Date: Sat, 29 Mar 2008 10:22:30 +0900
Subject: [rails:2596] Re: ネストされたリソースのルーティング
Rails 2.0.2ですが最近同じようなことで格闘していたので、参考まで に。 自分でもいろいろな情報をあたりながら試行錯誤したもので、これが 正しいやり方なのかは確信はありませんが。 routes.rbは > map.rosources :folders do |folder| > folder.resources :folders > end ... map.connect ':controller/:action/:id' map.connect ':controller/:action/:id.:format' でこちらの環境では GET /folders {:action=>"index", :controller=>"folders"} POST /folders {:action=>"create", :controller=>"folders"} GET /folders/new {:action=>"new", :controller=>"folders"} ... ... GET /folders/:folder_id/folders {:action=>"index", :controller=>"folders"} POST /folders/:folder_id/folders {:action=>"create", :controller=>"folders"} GET /folders/:folder_id/folders/new {:action=>"new", :controller=>"folders"} GET /folders/:folder_id/folders/:id/edit {:action=>"edit", :controller=>"folders"} ... ... などのようにルーティングをしてくれています。 acts_as_treeは使っていないのでfolder.rbは class Folder < ActiveRecord::Base has_many :sub_folders, :class_name=> 'Folder', :foreign_key => 'parent_id' belongs_to :parent, :class_name => 'Folder', :foreign_key => 'parent_id' ... としています。そしてコントローラーは def index if params[:folder_id] @folders = Folder.find(:conditions => [parent_id = ?',params [:folder_id]]) else @folders = Folder.find(:all) end end def new @folder = folder.new @folder.parent_id = params[:folder_id] if params[:folder_id] ... ... というようにして一応望んでいる結果を得られています。 -- 森近 真 uy4s-mrck@a... -- ML: rails@r... 使い方: http://QuickML.com/
2593 2008-03-27 06:19 [gauss8000@y... ] ネストされたリソースのルーティング -> 2596 2008-03-29 02:22 ┗[ofl@c... ] 2598 2008-04-01 05:13 ┗[gauss8000@y... ]