2015-06-12 1 views
0

У меня есть модель компании, и я использую friendly_id как этот friendly_id :name, use: :sluggedИзменить уникальные сгенерированные имена заголовков дружественного-идентификатор, используя атрибут другой таблицы

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

Но адрес компании хранится в другой таблице Адрес.

поэтому компания.address.city дает мне город компании.

friendly_id :slug_candidates, use: :slugged 

    # Try building a slug based on the following fields in 
    # increasing order of specificity. 
    def slug_candidates 
    [ 
     :name, 
     [:name, :city] 
    ] 
    end 

Я знаю, что могу сделать что-то подобное выше. Но так как city не является атрибутом компании, как я могу это достичь?

Обновление: Возможное решение для этого - создать вспомогательный метод city, который возвращает город компании.

Но проблема никогда не была такой.

Версия friendly_id, которую я использую, - это 4.0.10.1 , а функция, позволяющая использовать slug_candidates, доступна в версиях 5 и выше.

Я пробовал обновлять драгоценный камень. Но он не будет обновляться, поскольку версия 5 имеет зависимость от activerecord 4.0, а рельсы зависят от activerecord. 3.2.13.

Это своего рода тупик. Не знаю, что делать

ответ

1
class Company < ActiveRecord::Base 

    ............................. 
    def city 
    self.address.city 
    end 
end 
+0

Я уверен, что это должно сработать. Но сейчас я столкнулся с другой проблемой. и сделал небольшое чтение, и причина этого в том, что версия friendly_id не v5 или выше. – Alfie

+0

И позвольте мне добавить я не могу обновить friendly_id, как я получаю сообщение об ошибке, – Alfie

+0

'' 'В Gemfile: рельсов (= 3.2.13) рубин зависит от ActiveRecord (= 3.2.13) рубинового friendly_id (~ > 5.1.0) ruby ​​зависит от activerecord (> = 4.0.0) ruby ​​ '' ' – Alfie

Смежные вопросы