まず、前回の記事ではせっかくダウンロードしたライブラリを有効にしていませんでした。別の部分のデバッグをしようと思ってFirefoxのFireBugを起動したところ「Autocomplete?なにそれ?」と言われて初めて気が付いたという生き恥です…。
真のAutocompleteはこちら!><
layout:
<%= javascript_include_tag "autocomplete" %>
まずこれをやってなかった。 :defaults じゃダメだよね。当たり前だよね。
show.html.erb:
<script type="text/javascript">
new Autocomplete('form_name', {
serviceUrl:'<%= forms_autocomplete_path %>',
width:200,
});
</script>
form_name を対象に forms_autocomplete_path (今回は /forms_autocomplete(?query=:query) => FormsController#autocomplete)を張ってやるのは前回と一緒。width属性は追加してます。ただ、ルーティングするときにちょっとハマって、 /forms/autocomplete にするとうまく動いてくれなかった。もうちょっと頑張れば動かせたのかも知れないけどもう無理。
FormsController:
def autocomplete
@forms = Form.all
respond_to do |format|
format.json {
render :text => {:query => params[:query], :suggestions => @forms.map{|form| form.name}}.to_json
}
end
end
最後はこちら。推察を返す部分。ここでも酷いことに Form.all を Forms.all と前回は書いていて、そのまま運用していてもまったく気が付かなかった(実行されないのでエラーさえ吐かれない)というあんまりな状況になってました。泣きたいです。
でも今度こそやったからいいや。なんか別の機能のコミットとダブっちゃったけど許してくれ。人間なんだミスもするさ。
コーディングの才能ないかもって思ったら負けだと思ってる。
押してねっ→BlogPeople「趣味の世界」ブログランキング
おちゃめたんや・・・
返信削除こんな性格がいざというときに足を引っ張らないことを願うばかり…
返信削除