活动管理员在唯一字段上创建其他URL

时间:2019-05-03 20:18:55

标签: activeadmin

我有一个对象Foo,它具有字段ID和令牌(两者都是唯一的,都具有db索引)。我希望能够通过在 addition 中转到url“ / admin / foos / token-of-foo-1”进入Foo 1,以便能够使用url“ / admin / foos / 1“。我知道我将需要在routes.rb中执行以下操作,但是遇到了麻烦。帮助吗?

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

2 个答案:

答案 0 :(得分:0)

嗯,有些想法:

#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

答案 1 :(得分:0)

出于这种目的,我使用了名为FriendlyID的gem。您可以选择哪些字段应构成网址段,例如token

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

如果您对配置有更多疑问,请与我联系。它与Active Admin集成良好。