Rails, Как я могу объединить несколько атрибутов модели, чтобы создать уникальную постоянную ссылку, используя permalink_fu? - PullRequest
3 голосов
/ 11 апреля 2010

Может ли Permalink_fu объединить 2 или более атрибута модели для создания уникальной постоянной ссылки?

Допустим, у меня есть бизнес-модель, эта модель содержит атрибуты: имя,: адрес,: телефон,: город,: штат,: страна и т. Д.

Сейчас у меня установлена ​​постоянная ссылка на эту модель только для: name

has_permalink: имя

Так что я бы получил "/ biz / name". Однако я хотел бы объединить название компании, город и добавочный номер, если в городе есть более 1 местоположения для этого бизнеса.

Например, я хотел бы использовать:

"/ biz / joes-coffee-shack-chicago" для постоянной ссылки

или если бизнес с несколькими местоположениями

"/ Биз / Старбакс-чикаго-92"

Возможно ли это с текущим плагином permalink_fu или каким-то форком permalink_fu? Или это потребует некоторой модификации плагина permalink_fu?

Ответы [ 2 ]

1 голос
/ 11 апреля 2010

Вы можете установить атрибуты в виде массива:

has_permalink [:one, :two, :three]

К ним автоматически присоединится -. Permalink_fu также автоматически добавляет суффикс, если запись с этой постоянной ссылкой уже есть.

1 голос
/ 11 апреля 2010

Добавьте виртуальный атрибут к вашей Business модели.

class Business < ActiveRecord::Base
  attr_accessor :perma_link_attr
  has_permalink :perma_link_attr

  def perma_link_attr
    suffix = 1
    [:name, :city, suffix].join("-")
  end

end
...