Rails: использование friendly_id / slug со столбцом из связанной модели - PullRequest
0 голосов
/ 19 марта 2019

У меня есть модель контакта, которую я хочу добавить (gem_ friendly_id).Используя столбец user_name из модели User, к которой принадлежит модель Contact.

class Contact < ApplicationRecord
  belongs_to :user

  extend FriendlyId
  friendly_id self.user.user_name, use: :slugged

Но, набрав Contact.find_each(&:save) в моей консоли rails, я получаю эту ошибку:

NoMethodError (неопределенный метод`user 'для Contact (вызовите' Contact.connection ', чтобы установить соединение): Класс)

Как я могу использовать свою ассоциированную модель в качестве slug?

Версия Rails: 5.2.2 Камень Friendly_id: 5.2.4

Ответы [ 2 ]

1 голос
/ 19 марта 2019

Используйте этот способ:

class Contact < ApplicationRecord
  belongs_to :user

  extend FriendlyId
  friendly_id :user_name

  def user_name
    user.user_name
  end
end
1 голос
/ 19 марта 2019

FriendlyId всегда использует метод в качестве основы для текста слаг, для вашей проблемы выше, я думаю, вы создаете метод для user_name и вызываете связанное поле внутри метода

class Contact < ApplicationRecord
  belongs_to :user

  extend FriendlyId
  friendly_id :user_name

  def user_name
    user.user_name
  end
end
...