我的关系类似于此项目中描述的关系:
Filter on parent object attribute in ActiveAdmin
我已经在那里成功实施了解决方案。但是,我想为文本框实现自动完成功能。
在ActiveAdmin中有一篇关于在过滤器中使用自动完成的文章:
https://github.com/gregbell/active_admin/issues/1754
...但是这个例子并没有涉及到关系,我没有成功地适应我的情况。
以下是我尝试的内容(在我的情况下,我在查看评论时尝试过滤用户模型的用户名字段):
型号:
class User < ActiveRecord::Base
end
class Review < ActiveRecord::Base
belongs_to :user
search_methods :user_username
end
ActiveAdmin:
ActiveAdmin.register Review do
controller do
autocomplete :review, :user_username
end
filter :user_username, as: :autocomplete,
url: '/admin/reviews/autocomplete_review_review_user_username',
label: "Username", required: false
end
路线:
resources :reviews do
get :autocomplete_review_user_username, on: :collection
end
我已经尝试了几种变体,结果(当自动完成开始时)通常是:
ActiveRecord::RecordNotFound (Couldn't find Review with
id=autocomplete_review_review_user_username):
因为它正在发送带有GET请求的“id”参数'autocomplete_review_review_user_username'。
我不确定自动完成是否应该与用户控制器相关联,但是没有任何变化可用。