我有两个模型:UserDevice
和UserInfo
,如下所示(在schema.rb中):
create_table "user_devices", force: :cascade do |t|
t.integer "user_info_id"
t.string "platform"
t.string "unique_id"
t.string "id_for_push"
t.string "last_ip"
t.string "unique_id_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "user_devices", ["user_info_id"], name: "index_user_devices_on_user_info_id", using: :btree
create_table "user_infos", force: :cascade do |t|
t.string "google_unique_id"
t.string "email"
t.uuid "user_id"
end
编辑用户设备时,我可以选择太多选项。这两者加载时间太长,从如此庞大的列表中选择也是不切实际的 - 见图像。
如何将此下拉控件更改为更人性化的输入?
答案 0 :(得分:2)
是。查看chosen_rails gem。
请务必仔细遵循安装建议(即需要js,css等)。
您的f.input :user_info,
collection: -> { UserInfo.pluck(:id, :email) },
input_html: { class: 'chosen-select' }
输入将如下所示:
f.association :user_info,
collection: UserInfo.pluck(:id, :email),
include_blank: true,
input_html: { class: 'chosen-select' }
以下是根据文档的示例:
f.association
但我不记得Formtastic是否email
。
你应该尝试这两个例子的不同成分。
它会做什么,你会开始输入public class NumberEvaluator<T extends Number> extends Evaluator<T> {
}
(你可以选择任何其他属性),它会立即选择这些,这些已匹配已经输入的字母。