rails3-jquery-autocompleteをスネークケースなmodelで使う
はじめに、modelでスネークケースを使うのは止めておいた方がいい。いろいろと面倒なのだ。
参考:Rails 3でのオートコンプリートを手軽に実現する rails3-jquery-autocomplete
Rails3.1系です。
インストール
Gemfile
gem 'rails3-jquery-autocomplete'
ターミナル
bundle install
app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require autocomplete-rails
#他のjQuery系プラグインが入っていると重複する可能性あり
コントローラー名とモデル名
app/model/media_rental.rb
class MediaRental < ActiveRecord::Base
app/controllers/mediarentals_controller.rb
class MediarentalsController < ApplicationController
こんなヘンテコリンな状態なのでカオスになる。
コントローラーの設定
model名とcolumn名を指定、fullを付けてcolumnの前方一致以外も対象にする
autocomplete :media_rental, :title, :full=>true
routes.rbの編集
controller名を指定、getにmodel名とcolumn名を指定(onlyで使用箇所を限定)
resources :mediarentals, :only=>['autocomplete_media_rental_title'] do
get :autocomplete_media_rental_title, :on=> :collection
end
検索フォーム
オートコンプリートを仕込むところ、new.html.erbとか
f.autocomplete_field :「column名」, autocomplete_「model名」_「column名」_「controller名」_path
form_for :user do |f|
f.autocomplete_field :title, autocomplete_media_rental_title_mediarentals_path
end
検索結果が選択されたとき
new.html.erbの上の方に書いておく