在rails上更改URL中的params

时间:2012-10-12 12:49:51

标签: ruby-on-rails routing

我想更改网址上的:id参数。我在routes.rb文件中添加了类似的内容:

match "articles/:name/edit", :to => 'articles#edit', :as => 'edit_article'

认为:name服务器将params[:name]作为def edit @article = Article.find(params[:name]) end 后来为我在rails中。我编辑了我的文章控制器定义以进行编辑:

couldn't find article with id=test

我总是得到错误{{1}},我想知道为什么“id”而不是:name?我也试过改变比赛,但我得到了同样的结果。

我还有默认资源:文章仍在我的routes.rb文件中,不知道是否有类似双重规则的工作。

整个问题是,我会在网址中使用名称而不是ID编号,而不仅仅是编辑编号,使用show方法我可以处理它,但不能使用编辑/更新/删除。

关于路由我是reading但是我无法弄清楚我做错了什么。

1 个答案:

答案 0 :(得分:2)

默认情况下,findid搜索。

您应该将其替换为find_by_name

建议:使用friendly_id