ActiveAdmin自动完成

时间:2016-03-04 07:08:55

标签: ruby-on-rails-4 activeadmin

我有一个名为 LetterResponse

的模型

belongs_to:user

LetterResponse有以下字段(只是缩短我的模型)

:id
:title
:user_id

当管理员创建新的letter_response时,他将填写标题,当他输入用户名时,它应该自动填充

我有100k用户,所以无法做到

f.input :response_user_id, :as => :select, :collection => 
  User.all.collect {|user| [user.first_name, user.user_id] }, label: "Parent" 

甚至choozen-rails gem都会执行相同的预加载数据。

通过以下

尝试使用activeadmin-addons ajax-search

https://github.com/platanus/activeadmin_addons/blob/master/docs/select2_search.md

f.input :response_user_id, as: :search_select, url: admin_users_path,
          fields: [:user_last_name], display_name: 'name', 
                minimum_input_length: 2

但是我收到了错误:

  

未定义的方法response_user

如何进行?

1 个答案:

答案 0 :(得分:1)

你的输入字段不应该是:user_id而不是:response_user_id,(因为你提到你的LetterResponse有一个belongs_to:用户关系(不是belongs_to:response_user。

所以,它应该看起来像

public static int startSearch(int a[], int x)
{
    int f = find_first_index(a);
    return search(a, f, 0, (a.length-1), x);
}

public static int search(int a[], int f, int left, int right, int x)
{
    int s = a.length;
    int mid = (left + right) / 2;
    if (x == a[(mid+f)%s]) { // Found element
        return mid;
    }
    if (right < left) {
        return -1;
    }
..