auto_complete插件错误:无法找到ID = auto_complete_for_的问题

时间:2010-05-31 20:34:44

标签: javascript ruby-on-rails ruby autocomplete

我之前已经成功设置了这个插件,所以我很好奇我在这里做错了什么。我已经建立了用户为问题添加标签的能力。我这里没有使用标记插件,但这对此无关紧要。

关于自动完成,我试图让位于/views/questions/show.html.erb文件中的表单访问Tags表并显示tags.tags_name列中的条目。

当我开始输入字段时,我收到以下错误消息:

Processing QuestionsController#show (for 127.0.0.1 at 2010-05-31 15:22:20) [GET]
  Parameters: {"tag"=>{"tag_name"=>"a"}, "id"=>"auto_complete_for_tag_tag_name"}
  Question Load (0.1ms)   SELECT * FROM "questions" WHERE ("questions"."id" = 0) 

ActiveRecord::RecordNotFound (Couldn't find Question with ID=auto_complete_for_tag_tag_name):
  app/controllers/application_controller.rb:15:in `init_data'

出于某种原因,我实际上将字段名称作为Question.id传递。

将以下行添加到控制器时,插件设置非常简单:

auto_complete_for :tag, :tag_name

以及routes.rb文件中的以下行:

map.resources :tags, :collection => {:auto_complete_for_tag_tag_name => :get }

我已将控制器行添加到我的标签和问题控制器中,并在routes.rb文件中为标签和问题映射了资源:

map.resources :tags, :collection => {:auto_complete_for_tag_tag_name => :get }
map.resources :questions, :collection => {:auto_complete_for_tag_tag_name => :get }

我已经玩过去除上述任何一种或上述但似乎无法修复它。我在这里做错了什么想法?

更新:

我的QuestionsController #show action是钓鱼帖子:

@question = Question.find(params[:id])

1 个答案:

答案 0 :(得分:0)

找到答案。疯。您只需将其添加到routes.rb文件中:

map.auto_complete ':controller/:action',
     :requirements => { :action => /auto_complete_for_\S+/ },
     :conditions => { :method => :get }

Here is where I found it.