hoge/new => Submitボタン押す => hoge/createへリダイレクト
scaffoldでつくったnew, create周りのリダイレクトがどうやって実現されてるのかわからん。
Createボタン押したら別のアクションにリダイレクトされてるようなんだけど、これどうやってるんだ・・・。
# 7/3追記
たぶんこんな感じのマッピングがされてる。
map.connect "hoges/new", :controller => :hoges, :action => :create, :conditions => { :method => :post }
意味は、「hoges/newでPOSTしたらhoges/createを呼ぶべし」です。
#
今、new相当のimport(ファイルを参照、アップロードする画面)とcreate相当のimport_mainのView、Controllerをつくった。
で、importアクションが表示したviewのSubmitボタンから、ファイルの内容をimport_mainアクションにリダイレクトしたい。
そこで、routes.rbのトップに以下を追加した。
map.import_main 'events/import', :controller => 'events', :action => 'import_main'
これだと、import_mainアクションの最後に、indexビューを表示しようと思って
format.html { render :action => "index" }
とやると、index.html.erbで"event in @eventsがnilですよ〜"的なイミフな例外が出る。
でも、ここに書いてある@eventsってevents_controller#indexのトップに書いてある
@events = Event.find(:all)
だろうし、nilなわけないと思うんだ・・・。
# 7/3追記
renderだから、controller通してない。それは@eventsもnullになるだろjk。redirect_toを使うのが正しい。
redirect_to :action => "index"