jquery tokeninput に関する railscasts エピソード 258 をフォローしています。
ユーザーの入力がユーザー クエリの入力パラメーターに到達しない理由がわかりません。
私のデータベースはpostgresです。
薬局コントローラー
def index
@pharmacies = Pharmacy.order(:name)
respond_to do |format|
format.html
format.json { render json: @pharmacies.tokens(params[:q]) }
end
end
ユーザーモデル
def pharmacy_tokens=(tokens)
self.pharmacy_ids = Pharmacy.ids_from_tokens(tokens)
end
薬局モデル
def self.tokens(query)
pharmacies = where('lower(name) LIKE ? or name LIKE ?', "%#{query}%", "%#{query}%")
if pharmacies.empty?
[{id: "<<<#{query}>>>", name: "New: \"#{query}\""}]
else
pharmacies
end
end
ユーザー ビュー
<div class="field">
<%= f.label :pharmacy_tokens, "Pharmacies" %><br />
<%= f.text_field :pharmacy_tokens, data: {load: @user.pharmacies} %>
</div>
ユーザーの.js.コーヒー
jQuery ->
$('#user_pharmacy_tokens').tokenInput '/pharmacies.json'
theme: 'facebook'
prePopulate: $('#user_pharmacy_tokens').data('load')
preventDuplicates: true
queryParam: "q"
結果
Processing by PharmaciesController#index as JSON
Parameters: {"locale"=>"en"}
(0.6ms) SELECT COUNT(*) FROM "pharmacies" WHERE (lower(name) LIKE '%%' or name LIKE '%%')
Pharmacy Load (0.8ms) SELECT "pharmacies".* FROM "pharmacies" WHERE (lower(name) LIKE '%%' or name LIKE '%%') ORDER BY pharmacies.name ASC, name
Completed 200 OK in 30ms (Views: 27.0ms | ActiveRecord: 1.4ms)
text_field に入力すると、javascript が機能します。テキストがクエリに含まれなくなっただけです...私の空の「like」パーセント記号だけです..「%%」。ここでの私の入力はどうなりましたか?
前もって感謝します。