Rails 5 - создает маршрут тщеславия для каждого экземпляра модели - PullRequest
0 голосов
/ 10 октября 2018

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

У меня есть модель под названием Link, в которой есть заголовок, слаг и пункт назначения.Пункт назначения - это место для перенаправления (mydomain.com/instagram будет перенаправлять на мой аккаунт в Instagram).Slug - это настройка слагаемого для friendly_id.Это код в моем файле rout.rb, и он работает, но он выглядит брутто.

Link.all.each do |link|
  get "/#{link.slug}", to: 'links#show', :id -> link.id
end

Есть ли лучший способ выполнить эту задачу?

1 Ответ

0 голосов
/ 22 октября 2018

Вы можете использовать одно действие и маршрут, чтобы соответствовать всем вашим ссылкам, подобным этому.

В нижней части route.rb

get '*id', :to => 'links#show'

в links_controller.rb

  def show
    @link = Link.find_by_slug(params[:id])
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...