Active Admin создает дополнительный URL на уникальном поле - PullRequest
0 голосов
/ 03 мая 2019

У меня есть объект Foo, который имеет поля id и token (оба уникальны, оба имеют индексы БД).Я хочу иметь возможность перейти к Foo 1, перейдя по ссылке "/ admin / foos / token-of-foo-1" в добавлении , чтобы иметь возможность использовать URL "/ admin / foos / 1».Я знаю, что мне нужно будет сделать что-то вроде ниже в моем маршрутах.rb, но у меня проблемы.Помощь?

ActiveAdmin.routes(self) # keep this
get 'admin/???', to: 'admin/???' # add ...something

Ответы [ 2 ]

1 голос
/ 06 мая 2019

Для таких целей я использую этот самоцвет, называемый FriendlyID .Вы можете выбрать, какие поля должны формировать URL-слаг, в вашем случае это поле token:

class Foo < ApplicationRecord
  extend FriendlyId
  friendly_id :token, use: :slugged
end

Дайте мне знать, если у вас есть дополнительные сомнения по поводу настройки.Отличная интеграция с Active Admin.

1 голос
/ 04 мая 2019

Хм, некоторые мысли:

#admin/foo.rb
  controller do
    def find_resource
      if params[:id].length == 16 # it's a token
         end_of_association_chain.find_by_token(params[:id])
      else
        end_of_association_chain.find(params[:id])
      end
    end
  end
...