jquery - 未定义方法 `autocomplete' Rails 3 和 jquery

标签 jquery ruby-on-rails autocomplete

我的汽车表中有一个字段,名为:vin(车辆识别号),我希望它在编写内容时使该字段自动完成......好吧,你们都知道我的意思。

我在 stackoverflow.com 上找到了一些答案,但没有用。

我就进入正题了..我在这里遵循了有关它的教程 https://github.com/crowdint/rails3-jquery-autocomplete-app它效果很好,我刚刚做了一个新的应用程序。所以我决定把它放在我正在开发的应用程序中,我想我已经设置了一切,但我收到了这个错误

undefined method `autocomplete' for #< Class:0xb5e2da28>

其次是

app/models/car.rb:2
app/controllers/cars_controller.rb:9:in `index'

这里是来自 Car.rb 的几行

class Car < ActiveRecord::Base
autocomplete :car, :vin
  has_one :carname
  has_one :carmodel

一 block cars_controler

def index
    @search = Car.search(params[:search])
    @cars = @search.all.paginate :page => params[:page], :per_page => 18
   # @cars = @search.relation.paginate :page => params[:page], :per_page => 18

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @cars }
      format.json { render :json => @cars.map(&:attributes) }
    end
  end

我认为

<%= form_tag do %>
  <%= autocomplete_field_tag 'vin', '',car_autocomplete_car_name_path %>
<% end %>

在routes.rb中:获取'car/autocomplete_car_vin' 我做了 rake 路线,我期望如果不是自动完成,至少有一个工作表格。 请帮助使其发挥作用。谢谢。

更新

多亏了ricker,我设法用未定义的方法解决了问题..表单现在显示了。但是当我开始在字段中输入字母时,没有自动完成显示,甚至更多,在控制台中我得到这个奇怪的东西:“id”=>“autocomplete_car_vin”

Started GET "/cars/autocomplete_car_vin?term=lh" for 127.0.0.1 at Sun Oct 09 07:50:06 +0300 2011
  Processing by CarsController#show as JSON
  Parameters: {"term"=>"lh", "id"=>"autocomplete_car_vin"}
  SQL (0.6ms)  SHOW TABLES
  Car Load (0.2ms)  SELECT `cars`.* FROM `cars` WHERE `cars`.`id` = 0 LIMIT 1
Completed   in 38ms

ActiveRecord::RecordNotFound (Couldn't find Car with ID=autocomplete_vin):
  app/controllers/cars_controller.rb:29:in `show'

参数采用我在本例中输入的字母 lh(这些是我记录中 VIN 号码的前 2 个字母),对于我写的每个字母,我都会得到这个

“id”=>“autocomplete_vin”并且找不到 ID=autocomplete_vin 的汽车

为了比较我的应用程序的控制台结果,我将展示教程中效果很好的控制台操作

Started GET "/welcome/autocomplete_brand_name?term=su" for 127.0.0.1 at Sun Oct 09 04:04:57 +0300 2011
  Processing by WelcomeController#autocomplete_brand_name as JSON
  Parameters: {"term"=>"su"}
  Brand Load (0.6ms)  SELECT `brands`.* FROM `brands` WHERE (LOWER(name) LIKE 'su%') ORDER BY name ASC LIMIT 10
Completed 200 OK in 24ms (Views: 4.6ms | ActiveRecord: 0.6ms)

如您所见,没有“id”=>“autocomplete_brand_name”。这里有什么问题,如果你们中有人可以帮助我,请帮我。我真的需要这样做,这样我才能继续前进。谢谢。

最佳答案

autocomplete 行进入您的 Controller :

class CarsController < ApplicationController
  autocomplete :car, :vin
  # ...
end

另外,请确保您已经捆绑了 gem:

gem 'rails3-jquery-autocomplete` # in Gemfile
$ bundle install # in console

并重新启动服务器。

关于jquery - 未定义方法 `autocomplete' Rails 3 和 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7701100/

相关文章:

javascript - 如何使 jQuery 自动完成结果立即消失

android - 禁用 Android 文本字段建议

javascript - Opencart - jQuery 购物车总更新 - 修改输出

javascript - 一旦标签都有值,就动态地对它们的值求和

javascript - 用jQuery实现如下效果

javascript - JQuery 自动完成结果样式

jquery - 将应用程序迁移到 Angular 6 : But getting errors while running npm run build --prod. 但命令 npm run build --env=prod 成功运行

ruby-on-rails - 在 rake 任务中打印到屏幕

ruby-on-rails - 在 Rails 表单中初始化嵌套字段的正确方法

ruby-on-rails - Capistrano: SSHKit::Command::失败:捆绑退出状态:1