无法生成网址

时间:2013-02-11 11:28:56

标签: ruby-on-rails

这是我的模特

class Tourisme < ActiveRecord::Base
  has_friendly_id :title, :approximate_ascii => true

   .
   .

end

当标题包含"?""/"并且我想生成网址时

 admin_tourisme_path(tourisme)

我收到了错误

admin_tourisme_url failed to generate from {:action=>"show", :id=>#<Tourisme id: 14, title: "title with  ?", description:.............

我该如何解决这个问题

1 个答案:

答案 0 :(得分:0)

因此,阅读friendly_id的文档(http://rubydoc.info/github/norman/friendly_id/master/file/WhatsNew.md)我找到了2个解决方案:

1 - 在模型中使用#normalize_friendly_id: 来自doc:

Bye-bye Babosa

Babosa是FriendlyId 3的淘气库。

FriendlyId 4默认不使用它,因为它最重要的部分已经被Active Support 3接受。

然而,Babosa仍然有用,例如,用于将西里尔(或其他语言)字符串惯用音译为ASCII。它很容易包含 - 只需覆盖模型中的#normalize_friendly_id:

class MyModel < ActiveRecord::Base
  ...

  def normalize_friendly_id(text)
    text.to_slug.normalize! :transliterations => :russian
  end
end

2 - 使用slugged模型:http://rubydoc.info/github/norman/friendly_id/master/FriendlyId/Slugged