为什么我在controller里面新建的方法不能调用总往show方法里面走呢?

具体是这样
我生成默认的代码后我想把new方法名 改成register
我是这样操作的 先把controller里的new 改成register
然后把new.html.erb重命名为register.html.erb
同时把 index.html.erb文件的 原来的link_to 标签换成
<%= link_to 'GOTO REGISTER', {:action=>'register'} %>

但是执行的结果确实 总往 controller的show方法里走
结果总导致
Couldn't find User with ID=register
这样的异常

我来给你说这个吧,保证你完全明白我所讲的原理。因为你采用默认生成代码也就是scaffold的时候,在config/routes.rb有[b][color=red]map.resources :users[/color][/b]

这表示uesrs是rest的,说实在一点就是它默认只支持7个方法,也就是controller中存在的那七个,另外想向controller中新增方法的话,必须要在config/routes.rb中进行配置,当我想给users新增一个显示最新注册 的用户的action方法latest,应该在routes.rb中这样配置:
[color=red]map.resources :users, :collection => { :latest => 'get'}[/color]
这样的话,访问latest方法的时候就不会提示latest是show的ID了。

看你的问题中所描述的,如果想访问register来调用 new方法,那么配置一下即可:
[color=red]map.register '/register', :controller => 'users', :action => 'new'[/color]

请问,我说了这么多,你还有什么不懂的吗?