【问题标题】:Changing the params in URL on rails在 Rails 上更改 URL 中的参数
【发布时间】: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


    【解决方案1】:

    默认情况下,findid 搜索。

    你应该用find_by_name替换它。

    建议:使用friendly_id

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      • 1970-01-01
      • 2015-04-05
      相关资源
      最近更新 更多