【发布时间】:2012-10-12 12:49:51
【问题描述】:
我想更改 URL 上的 :id 参数。我在 routes.rb 文件中添加了如下内容:
match "articles/:name/edit", :to => 'articles#edit', :as => 'edit_article'
认为:name 稍后会在 Rails 中被服务器读取为params[:name]。我编辑了我的文章控制器定义以进行编辑:
def edit
@article = Article.find(params[:name])
end
我总是收到错误couldn't find article with id=test,我想知道为什么用“id”而不是:name?我也尝试更改匹配以获取,但我得到了相同的结果。
我还有默认资源 :articles 仍在我的 routes.rb 文件中,不知道是否有类似 双重规则 的东西在那里工作。
整个事情是,我会在我的 URL 中使用名称而不是 ID 号——不仅仅是编辑,使用 show 方法我可以处理它,但不是使用编辑/更新/删除。
我在reading 谈论路由,但我不知道我做错了什么。
【问题讨论】:
标签: ruby-on-rails routing