Rails: link_to でコントローラを指定する2006年11月20日 14時34分16秒

Rails で user_engine を実験している。設定を終わらせると、http://localhost:3000/user/login からログインが出来る。ログイン後に表示されるページは、vendor/plugins/login_engine/app/views/user/home.rhtml にある。もし、ログイン後の画面を変更したいのなら、app/views/user/home.rhtml に新しく作るとこちらが使われる。

user_engine の home.rhtml には


 <%= link_to '« logout', :action =gt; 'logout' %>

と記述がある。リンクを作り、usr/logout に飛ぶと言う意味だ。Todo のページにどうすれば飛べるのか、すぐにはわからなかった。action に todos/list とやると、http://localhost:3000/user/todos/list にリンクが出来てしまう。http://localhost:3000/todos/list にリンクをしたかったのだ。

結局、


 <%= link_to 'List Todos', {:controller => 'todos', :action => 'list'} %>

とやると、todos/list に飛べる事が判った。

Ruby on Railsが総本山だ。そこから、Rails Framework Documentaion にリンクがある。こちらに、Rails の API が並べてある。

link_to は url_for の派生クラスのようだ。そこで、:controller を指定することにより、http://localhost:3000/todos/list にリンクすることが出来た。

URL作成機能(url_for, link_to)にも記述されていたが、最初に調べたときはうまく見つけられなかった。

前回次回