我已经阅读了这篇文章。我也有同样的痛苦 问题
我的网站网址如下:locahost:3000 / users / edit / 30
我不想显示控制器:用户和操作:编辑。
我想重写(重写)URL,或者我想将URL维护为 仅http://127.0.0.0:3000/30/。(30是用户ID)
我对显示控制器(用户)和操作(编辑)
不感兴趣我的目的是隐藏(HIDING)和重写(REWRING)URL 主要是我想用控制器和动作隐藏URL Extensions 主要..
答案 0 :(得分:2)
要想以这种方式使用路由是一个奇怪的要求,因为这会使您难以扩展此方案以支持应用程序中的其他操作。 Rails约定的优点之一就是您通常不必担心(通常是微不足道的)应用程序详细信息,或者必须对它们有强烈的意见。
但是你真的,真的想,你可以将它添加到你的config/routes.rb
ActionController::Routing::Routes.draw do |map|
map.connect "/:id", :controller => "users", :action => "edit"
end
请记住,此限制方案意味着您只能路由到编辑操作。我建议不是非常有用。
答案 1 :(得分:1)
rails routes.rb文件是你的答案:
这里有很多关于如何做到你需要的信息:
http://guides.rails.info/routing.html#customizing-resourceful-routes
答案 2 :(得分:0)
对于大多数应用程序,我一直在使用标准:
/script.cgi?arg1=foo&arg2=bar
现在显然/ user / edit / eric对于涉及的URL看起来好多了 编辑“Eric”用户。但是,当你拥有时,这是如何解决的 多个项目。例如,如果我想删除一组用户。一世 可能有旧的方式:
/user/delete.cgi?id=3&id=5&id=7
或者我们可以使用更易读的格式:
/user/delete.cgi?username=eric&username=john&username=paul
这当然假设用户名是唯一的。 :)所以看来我 会想要这样的东西:
/user/delete/eric/john/paul
这显示了网址发生的事情。但是我该怎么做 生成这个?如果一个动作收到这个请求,它是如何得到的 解析,所以我有类似的东西:
@delete_usernames ===>>> [ 'eric', 'john', 'paul' ]
这样我就可以加载这些用户并删除它们。我知道 ActionController提供了一些处理URL重写的方法 但我不确定如何最好地使用它们。任何帮助或指针都很重要 赞赏。