1
我正在关注有关jquery tokeninput的第57集的第52集。jquery tokeninput输入参数丢失
我不知道为什么用户的输入没有达到用户查询的输入参数?
我的数据库是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>
users's.js.coffee
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的作品,它只是文字不再查询......只是我的空“样'百分号..'%%'。我的输入发生了什么事?
谢谢你提前。
都不工作,当删除双引号的where子句正则表达式不再有效。我尝试了单引号,虽然它是一个有效的正则表达式,字符串NOT查询参数被传递到查询中..'SELECT COUNT(*)FROM“pharmacies”WHERE(lower(name)LIKE'%#{query} %'或名称LIKE'%#{query}%')' –
是导致此问题的区域设置参数吗? '处理PharmaciesController#index为JSON 参数:{“locale”=>“en”} [1m [36mPharmacy Load(1.0ms)[0m [1mSELECT“pharmacies”。* FROM“pharmacies”WHERE(name ILIKE' %')ORDER BY pharmacies.name ASC,name [0m 在30ms内完成200 OK(查看:28.0ms | ActiveRecord:1.0ms)' –
您是否在控制器中获得了params [:q]? – Kashyap