0:Routing Navigator 是什么
你了解Routes 了吗?你对
map.home '',:controller=>'welcome'
了解吗?你知道它生成什么样的helper方法么?
这个呢?
map.resources :forums
更复杂一点的呢?
map.resources :forums do |forum|
forum.resources :topics
end
map.namespace(:admin) do |admin|
admin.resources :forums
end
Oh,My God,有导师吗?我需要指导一下... Routing Navigator 登场啦:)
1:安装
$ script/plugin source http://svn.techno-weenie.net/projects/plugins
$ script/plugin install routing_navigator
或者直接安装
$ script/plugin install http://svn.techno-weenie.net/projects/plugins/routing_navigator
2:配置
1:) Routing Navigator 在development下生效,默认是关闭的,所以,你得打开它
class ApplicationController < ActionController::Base
routing_navigator :on
2:) 确认routing_navigator的js和css已经拷贝到你的public目录下,如果没有,请运行
rake update_routing_navigator
注意: 你使用的是Edge Rails,请拷贝views下面的页面到app/views下面
3:) 在你的layout或者view里面添加如下的代码
<%= javascript_include_tag :defaults,'routing_navigator' %>
<%= stylesheet_link_tag 'routing_navigator' %>
好了,可以使用了
3:使用
启动server,打开页面,你会看到你已有的页面下会多了额外的信息,如下图
注:你可以直接访问 http://host:port/routing_navigator ,这里可以看到所有的信息
1:) Named Routes
3:) Routes
4:) Recognize
我们试着在输入框中输入/login,会看到如下的信息
{[:resource_key_chain]=>[], :controller=>"sessions", :action=>"new"}
right? yes!
5:) Generate
我们来试一下nested resource,输入
controller: topics
action: show
id: 1
forum_id: 1
输出
"/forums/1/topics/1"
太棒了
4:更多
你可以点击routing_navigator 查看所有的状态。
截两个图,部分,有兴趣,可以自己试试看看
今天我就是用他来发现一个我的错误的。
在Rails1.2.3中,对于
map.resources :forums do |forum|
forum.resources :topics
end
生成的是
new_topic_path(@forum)
而在Edge Rails生成的是
forum_new_topic_path(@from)
其他的类推,这里就不提了