У меня есть модель пользователя и модель профиля.Дружественный URL-адрес, с помощью Twist
user has_one :profile
profile belongs_to :user
Из-за этого отношения, я подтянуть свои профили, вызвав идентификатор пользователя. Поэтому мои URL-адреса выглядят так: website.com/users/[user_id]/profile
Я не уверен, есть ли решение моей проблемы. Вот он: Я хотел бы показывать дружественные URL-адреса. Для этого я использую friendly_id
. Но наши профили для предприятий, и это название компании, которое мы хотим ввести в URL. Проблема в том, что наша пользовательская модель намеренно не запрашивает название компании, а именно user_id
, которая отображается в текущем URL.
Есть ли способ захватить фирменное имя из модели профиля (т. Е. @ Profile.name) и использовать его для заполнения [user_id] части URL-адреса?
ОБНОВЛЕНИЕ: Я создал драгоценный камень friendly_id, и похоже, что это может сработать. В моей модели профиля, у меня есть это: has_friendly_id :name, :use_slug => true
Когда я обновил профиль, friendly_id
сделал slugify URL-адрес, поставив название компании из профиля в user_id
части URL. Но, конечно, это исключение.
Так что, если название компании в модели профиля - это панель Mike's, в url теперь говорится/users/mike-s-bar/profile. Исключение говорит, что это: Не удалось найти пользователя с ID=mike-s-bar.
Вот мой профиль контроллера:
def show
@user = User.find(:all)
@profile = User.find(params[:user_id])
end
Есть ли способ, чтобы сделать эту работу?
я второй, но хотел бы добавить вызов спараметрировать:
Вы хотите сохранить