ROR中的URL重写

时间:2010-07-16 10:57:51

标签: ruby-on-rails ruby url url-rewriting

我是阿米特。我是Rails的新手。如果问任何愚蠢的话,请原谅我 的问题。

我已经阅读了这篇文章。我也有同样的痛苦 问题

我的网站网址如下:locahost:3000 / users / edit / 30

我不想显示控制器:用户和操作:编辑。

我想重写(重写)URL,或者我想将URL维护为 仅http://127.0.0.0:3000/30/。(30是用户ID)

我对显示控制器(用户)和操作(编辑)

不感兴趣

我的目的是隐藏(HIDING)和重写(REWRING)URL 主要是我想用控制器和动作隐藏URL Extensions 主要..

3 个答案:

答案 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重写的方法 但我不确定如何最好地使用它们。任何帮助或指针都很重要 赞赏。