Область не распознает обе колонки? - PullRequest
0 голосов
/ 10 декабря 2011

В моем поле автозаполнения Tokeninput я пытаюсь сделать так, чтобы возвращаемые столбцы были моими :address и :website, когда он идет по определенному методу :store.

class BusinessStore < ActiveRecord::Base
    scope :search_by_store, lambda { |q|
       (q ? where(["address LIKE ? or website LIKE ? like ?", '%'+ q + '%', '%'+ q + '%','%'+ q + '%' ])  : {})}

    def store
        if self.online_store
          "#{business_name} - #{website}"
        else
          "#{business_name} - #{address}"
        end
    end
end

class BusinessStoresController < ApplicationController

  def index
    @business_stores = BusinessStore.all
    @business_stores = BusinessStore.search_by_store(params[:q])

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @business_stores }
      format.json { render :json => @business_stores.collect{|b|{:id => b.id, :name => b.store } } }
    end
  end
end

Моя страница json:http://localhost:3000/business_stores.json показывает все результаты правильно, но в поле Token отображаются только :address результаты, а не результаты на веб-сайте.Как мне это исправить?

1 Ответ

1 голос
/ 10 декабря 2011

Попробуйте это:

(q ? where(["address LIKE ? OR website LIKE ?", "%#{q}%", "%#{q}%" ]) : {})}
...