2010-05-31 64 views
0

问题我已经成功地设置了这个插件,所以我很好奇我在做什么错在这里。我已经建立了用户为问题添加标签的能力。我没有在这里使用标记插件,但这不应该为此。auto_complete插件错误:无法找到ID = auto_complete_for_

对于自动完成,我试图让位于/views/questions/show.html.erb文件中的表单访问标签表并在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 } 

我玩过去除了上述任何一个,但似乎无法修复它。任何想法我在这里做错了吗?

UPDATE:

我QuestionsController#show行为是钓鱼的帖子:

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

回答

0

找到了答案。疯。你只需要添加到您的routes.rb文件:

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

Here is where I found it.

相关问题