我已经按照here提到的所有内容。但是,它不起作用。我有问题控制器。我想提出自动填充搜索框。我用代码route_to_app / app / controllers / finders_controller.rb创建了finders_controller.rb
class FindersController < ApplicationController
autocomplete :question, :question
end
在路线中,我有以下路线:route_to_app / config / routes.rb
resources :finders do
get :autocomplete_question_question, :on => :collection
end
在视图部分route_to_app / app / views / questions / index.html.erb
中 <div class = "span-24 last box">
<%form_for @finder do |f|%>
<%= f.autocomplete_field :question_question, autocomplete_question_question_finders_path %>
<%end%>
</div><!--End span-24 box.-->`
code route_to_app / app / views / finders / index.html.erb为空。
Javascrip文件看起来像route_to_app / app / assets / javascripts / application.js
//= require jquery
//= require jquery_ujs
//= require_tree .
//= require autocomplete-rails
我收到以下错误消息。我确实从根本上说错了:
NilClass:Class的未定义方法`model_name' 显示C:/Sites/iHardie/app/views/questions/index.html.erb第8行提出:
<div class = "span-24 last box">
<%form_for @finder do |f|%>
<%= f.autocomplete_field :question_question, autocomplete_question_question_finders_path %>
<%end%>
</div><!--End span-24 box.-->
有人可以帮忙吗?我被困在这里一段时间了。我会买一个漂亮的比萨饼或送一张漂亮的礼品卡给谁帮我解决问题。
这是问题数据库的样子:
create_table "questions", :force => true do |t|
t.string "question"
t.string "answer"
t.integer "product"
t.integer "priority"
t.integer "user"
t.string "type"
t.boolean "favorite"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false end
答案 0 :(得分:0)
从以下开始,如果您仍然遇到问题,我们可以从那里接受。
现在您已发布架构文件,有一个问题会立即跳出来。您已声明自动填充如下。
class FindersController < ApplicationController
autocomplete :question, :question
end
这应该按如下方式使用
autocomplete :table_name, :method_name
这不会自动复数化,因此表名需要与数据库/ schema.rb中的内容相匹配。您在这里使用了:table_name => :question
,但在schema.rb文件中,表名为questions
。
尝试更改此内容,如果您遇到其他问题,请与我们联系。