friendly_id - изолировать слизней в отдельной таблице
Есть ли возможность иметь слаг-поле в общей / отдельной таблице, возможно, с полиморфной ассоциацией?
Например у меня есть три модели User
, Product
а также Slug
но поле slug отсутствует в таблице пользователей и продуктов. slug field
присутствует в slugs
Таблица.
Модель пользователя
class User < ActiveRercord::Base
extend FriendlyId
friendly_id :slug_candidates, use: [:slugged, :finders]
has_one :slug, dependant: :destory, as: :sluggable, class_name: "FriendlyId::Slug"
end
Модель продукта:
class Product < ActiveRercord::Base
extend FriendlyId
friendly_id :slug_candidates, use: [:slugged, :finders]
has_one :slug, dependant: :destory, as: :sluggable, class_name: "FriendlyId::Slug"
end
Модель слизня
module FriendlyId
class Slug < ActiveRecord::Base
belongs_to :sluggable, :polymorphic => true
def to_param
slug
end
end
end
Я хочу найти запись пользователя, используя содержание слагов, например
User.find ("rafiu") - чтобы получить пользователя с содержимым "rafiu"
Он должен найти пользователя, присоединившись к таблице слагов.
Есть ли способ сделать это?