こんにちは、ネストされたフィールドの作成に繭を使用しています。
コクーン: https://github.com/nathanvda/cocoon
ネストされたフォーム/フィールドは 100% 機能しているため、1 つのネストされたフィールドに jQuery オートコンプリートを統合しようとしました。
私はこの要点(map7から分岐)に従っています:https://gist.github.com/xirukitepe/5132317
オートコンプリートは最初/親フィールドで機能していますが、後続のネストされた他のフィールドでは機能していません。
これが私のコードです:
まず、オートコンプリート コントローラーを作成しました。
class AutocompleteController < ApplicationController
def categories
if params[:term]
like = "%".concat(params[:term].concat("%"))
categories = Category.where("lower (categories.code) LIKE lower(?)", like)
else
categories = Category.all
end
list = categories.map {|u| Hash[id: u.id, label: u.code, name: u.code]}
render json: list
end
end
次にitem.rbで
attr_accessor と 1 つのメソッドを追加しました...
attr_accessor :category_code
def category_code
category.code if category_id
end
items_controller.rb内
def category_code=(code)
category= Category.find_by_code(code)
if category
self.category_id = category.id
else
errors[:category_code] << "Invalid name entered"
end
end
def category_code
Category.find(category_id).name if category_id
end
ここに私のコーヒーファイルがあります:
$ ->
$('input.x').autocomplete
source: "/autocomplete/categories"
select: (event,ui) -> $("input.xx").val(ui.item.id)
ルート.rb
match '/autocomplete/categories' => "autocomplete#categories"
resources :project_procurement_management_plans do
resources :attachments
resources :items do
member do
put :edit_pmr_item
get :edit_item
end
end
end
ネストされた属性には異なるIDSがあり、JSを使用して呼び出す方法がわからないため、IDではなくクラスを介して呼び出しています。
任意の回避策をいただければ幸いです。ありがとう。