0

我在我的模型中使用这个规则:

  def to_param
    "#{self.name.parameterize}"
  end

在我的助手中:

  def articles_menu
    menu = '<ul>'
    Article.all.each do |article|
      menu += '<li>'
        menu += link_to "#{article.name}", article
      menu += '</li>'
    end
    menu += '</ul>'
    return menu.html_safe
  end

但是当我去的时候/articles/my-new-flat,我会得到错误

ActiveRecord::RecordNotFound in ArticlesController#show

Couldn't find Article with id=my-new-flat

还想念我别的东西,或者我的应用程序有什么问题吗?我虽然对于名称的参数化只需要在模型中设置规则...

4

1 回答 1

0

使用 FriendlyId gem 它有你需要的一切,这里是链接https://github.com/norman/friendly_id/blob/master/README.md

您的代码的问题是集线器下的 rails 试图通过“id”属性查询您的模型,而不是查询“name”属性。FriendlyId gem 为你想要的模型修补这个

于 2012-05-03T08:45:10.267 回答