我之前已经成功设置了这个插件,所以我很好奇我在这里做错了什么。我已经建立了用户为问题添加标签的能力。我这里没有使用标记插件,但这对此无关紧要。
关于自动完成,我试图让位于/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])
答案 0 :(得分:0)
找到答案。疯。您只需将其添加到routes.rb文件中:
map.auto_complete ':controller/:action',
:requirements => { :action => /auto_complete_for_\S+/ },
:conditions => { :method => :get }