2014-11-05 2 views
2

Я использую Stringex для создания пули для модели ActiveRecord. Мой код выглядит следующим образом:Исключить слова из stringex act_as_url?

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' 

Так что, если URL продукта является search, маршруты будут /search и У меня есть маршрут /search. Я хочу исключить некоторые слова, которые stringex не следует использовать в качестве атрибута url.

ответ

3

Вы можете использовать атрибут :blacklist для метода acts_as_url. Добавить blacklist: %w{new search} по умолчанию значение blacklist атрибут %w{new} во избежание противоречия с рельсами по умолчанию 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