Проблема: Я установил гем friendly_id, он работает так, как предполагалось для моей таблицы Users, но для моей модели листингов дружественный URL-адрес использует: name вместо: id isn ' т работает.
Вот вкратце мой контроллер листингов:
def show
@order = @listing.orders.new()
#as you can see, I have no need for a find because i noticed i didn't need it for the show page to show up correctly - idk
end
private
def set_listing
@listing = Listing.find(params[:id])
end
Пробовал также использовать Listing.friendly.find(params[:id])
в списке установок, а также в def show
.
Что меня смущает, так это то, что мне даже не нужно что-то вроде @listing=Listing.find(params[:id])
Я пытался использовать это в шоу: @listing=Listing.friendly.find(params[:id]
но это не имело значения. Я также попытался изменить метод set_listing, чтобы включить дружественный фрагмент, но это тоже не помогло - просто выстрел, хотя он не должен работать.
Я включил это в модель - так же, как я сделал для своей таблицы Users:
extend FriendlyId
friendly_id :name, use: :slugged
Например, у меня есть список, id: 1, имя: Тест листинга 1, slug: list-test-1
Я захожу на domain.com/listings/listing-test-1 и получаю
Не удалось найти листинг с 'id' = list-test-1
Я сделал все то же самое, что и с таблицей Users, но, похоже, она не работает.
Вопрос: Является ли тот факт, что я не называю @listing в шоу, проблемой? Если так, есть ли другие способы обойти это?
Важно, чтобы я назвал имя вместо идентификатора