Дружественный ID не работает, как ожидалось для моделей Показать.Есть ли способы обойти это? - PullRequest
1 голос
/ 20 марта 2019

Проблема: Я установил гем 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 в шоу, проблемой? Если так, есть ли другие способы обойти это? Важно, чтобы я назвал имя вместо идентификатора

...