我想更改:id
URL 上的参数。我在 routes.rb 文件中添加了如下内容:
match "articles/:name/edit", :to => 'articles#edit', :as => 'edit_article'
认为:name
服务器params[:name]
稍后会在 Rails 中读取它。我编辑了我的文章控制器定义以进行编辑:
def edit
@article = Article.find(params[:name])
end
我总是得到错误couldn't find article with id=test
,我想知道为什么“id”而不是:name?我也尝试更改匹配以获取但我得到了相同的结果。
我还有默认资源 :articles 仍在我的 routes.rb 文件中,不知道那里是否有类似双重规则的东西。
整个事情是,我会在我的 URL 中使用名称而不是 ID 号——不仅仅是编辑名称,我可以使用 show 方法处理它,但不是使用编辑/更新/删除。
我正在阅读有关路由的信息,但我无法弄清楚我做错了什么。