活跃管理员在唯一字段上创建额外的 URL
Active Admin create additional URL on unique field
我有一个对象 Foo,它有字段 id 和 token(两者都是唯一的,都有数据库索引)。我希望能够通过 url "/admin/foos/token-of-foo-1" 在 addition 中使用 url "/admin/foos/1”。我知道我需要在我的 routes.rb 中执行类似下面的操作,但我遇到了麻烦。帮忙?
ActiveAdmin.routes(self) # keep this
get 'admin/???', to: 'admin/???' # add ...something
嗯,一些想法:
#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
出于这种目的,我使用了名为 FriendlyID 的 gem。您可以 select 哪些字段应构成 URL slug,在您的情况下,字段 token
:
class Foo < ApplicationRecord
extend FriendlyId
friendly_id :token, use: :slugged
end
如果您对如何配置有更多疑问,请告诉我。它与 Active Admin 完美集成。
我有一个对象 Foo,它有字段 id 和 token(两者都是唯一的,都有数据库索引)。我希望能够通过 url "/admin/foos/token-of-foo-1" 在 addition 中使用 url "/admin/foos/1”。我知道我需要在我的 routes.rb 中执行类似下面的操作,但我遇到了麻烦。帮忙?
ActiveAdmin.routes(self) # keep this
get 'admin/???', to: 'admin/???' # add ...something
嗯,一些想法:
#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
出于这种目的,我使用了名为 FriendlyID 的 gem。您可以 select 哪些字段应构成 URL slug,在您的情况下,字段 token
:
class Foo < ApplicationRecord
extend FriendlyId
friendly_id :token, use: :slugged
end
如果您对如何配置有更多疑问,请告诉我。它与 Active Admin 完美集成。