ails - コントローラで生成したデータをJSで利用したい。
4505 ワード
いろいろ方法があるうちの一つ。
今後も便利に使えそうなのでメモ。
Controller
コントローラでデータを準備し、テンプレートに渡す目的でインスタンス変数に格納する。
movings_controller.rb
#...
def show
#...
@itemNameSuggestions = Ingredient.select(:category).pluck(:name),
@roomSuggestions = Room.select(:name).pluck(:name),
@categorySuggestions = @moving.moving_items.select(:category).distinct.pluck(:category)
end
#...
Template
ID付きの空タグを作り、data属性にコントローラから受け取ったデータを書き込む。
show.html.haml
= content_tag :div, "", id: "suggestions", data: { items: @itemNameSuggestions,
rooms: @roomSuggestions, categories: @categorySuggestions }
JS
IDでタグを探し、dataメソッドでデータを取り出す。
moving_items.coffee
jQuery ->
$('#moving_item_name').autocomplete
source: $('#suggestions').data('items')
$('#moving_item_room').autocomplete
source: $('#suggestions').data('rooms')
$('#moving_item_category').autocomplete
source: $('#suggestions').data('categories')
参考資料
Author And Source
この問題について(ails - コントローラで生成したデータをJSで利用したい。), 我々は、より多くの情報をここで見つけました https://qiita.com/mnishiguchi/items/15462e4b3f10ef0769a0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .