【问题标题】:JQuery's Autocomplete for RoR 2.3.9RoR 2.3.9 的 JQuery 自动完成功能
【发布时间】:2011-06-30 15:44:06
【问题描述】:

我想开发一个自动完成输入。

我对此有我的控制器操作:

def autocomplete_airports
    render :json => WebService.get_airports(params[:airports_input])
end

get_airports 返回以逗号 (,) 分隔的条目:

def self.get_airports(code)
    #SOAP Action
    begin response = @@client_airports_codes.request :tem, 'airports' do
        soap.body =
          {
          "tem:prefixText" => code,
          "tem:count" => @@airport_response_count
        }
      end
    rescue Savon::SOAP::Fault => fault
      puts fault.to_s
    end
    #preparing response
    json = ""
    response.to_hash[:airports_response][:airports_result][:string].each{
      |key| json = json + key.to_s + ","
    }
    return json
  end

在我看来:

<form id="airport_form" class="center" action="">
  <label for="airports_input">Airport/City</label>
  <br />
  <input type="text" name="airports_input" id="airports_input" />
</form>

还有我的 JavaScript:

$('#airports_input').autocomplete('/WebServices/autocomplete_airports');

但是,它不起作用。

我该怎么办?

谢谢!

【问题讨论】:

  • 可以发get_airports方法代码吗?
  • 当然...查看我对 get_airports 代码的编辑。

标签: jquery ruby-on-rails autocomplete


【解决方案1】:

我认为您需要返回一个键值对数组才能完成这项工作。看@my answer 到另一个最近的问题。

我将在此处添加该答案中未包含的相关模型代码(注意:Rails 3.0):

def self.search(search = nil)
  if search
    where('name LIKE ?', "%#{search}%") | tagged_with("%#{search}%")
  else
    scoped
  end
end

def self.autocomplete(search)
  results = search(search)
  results.map! { |result| {:value => result.name} }
end

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-07-21
    • 2016-04-14
    • 2018-08-03
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 2020-11-20
    相关资源
    最近更新 更多