我使用Stringex为ActiveRecord模型生成slugs。我的代码如下:
product.rb
class Product < ActiveRecord::Base
acts_as_url :name, url_attribute: :url, sync_url: true, limit: 50, replace_whitespace_with: "_"
def to_param
slug
end
end
的routes.rb
get '', to: 'product#show',:as => 'product'
因此,如果产品的网址为search
,则路由将为/search
,并且我已经有/search
路由。我想排除一些stringex不应该用作url属性的单词。
答案 0 :(得分:3)
您可以使用:blacklist
方法的acts_as_url
属性。默认情况下,添加blacklist: %w{new search}
blacklist
属性的值为%w{new}
,以避免与rails默认new
路由冲突。
您的代码应如下所示:
<强> product.rb 强>
class Product < ActiveRecord::Base
acts_as_url :name, url_attribute: :url, sync_url: true,\
limit: 50, replace_whitespace_with: "_", blacklist: %w{new search}
def to_param
slug
end
end