Использование во взглядах:

ел бы создать URL-слагы для тегов, управляемых гемом act_as_taggable_on. Например, вместо URL, какhttp://myapp.com/tags/5, Я бы хотелhttp://myapp.com/tags/my-tag (где «мой тег» - это уникальное имя тега).

В моделях, которые я создаю сам, я обычно делаю это, переопределяя метод to_param модели и создавая поле "slug" в модели, чтобы сохранить результат нового метода to_param. Я пытался сделать это с моделью тегов ActsAsTaggableOn, но она не работает.

В противном случае я могу переопределить вещи в классе tag.rb ActsAsTaggableOn следующим образом:

# Overwrite tag class
ActsAsTaggableOn::Tag.class_eval do
  def name
    n = read_attribute(:name).split
    n.each {|word| word.capitalize!}.join(" ")
  end      
end

Однако, если я попытаюсь переопределить метод to_param в этом же блоке с помощью определения метода, например:

def to_param
  name.parameterize
end

Rails по-прежнему генерирует и отвечает на маршруты с целочисленными идентификаторами, а не параметризованным именем. На самом деле в консоли, если я попробую что-то вроде

ActsAsTaggableOn::Tag.find(1).to_param

Возвращается целочисленный идентификатор, а не результат переопределенного метода to_param.

Я бы предпочел не разветвлять гем и не настраивать его, если есть какой-то способ сделать это с помощью собственного кода приложения. Благодарю.

Ответы на вопрос(5)

Ваш ответ на вопрос