1

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」パーセント記号だけです..「%%」。ここでの私の入力はどうなりましたか?

前もって感謝します。

4

1 に答える 1

0

これらのいずれかを試してください。主に最初のもの。

1. Try %#{query}% without double quotes.
2. Try %query% without double quotes

どちらが機能するか教えてください。

于 2012-10-18T05:13:32.470 に答える