RailsによるアジャイルWebアプリケーション開発をやってるときにつまずいたところ。
第10章1節 イテレーション E1:注文情報の取得
ruby 1.8.7を使っていておきる問題。
page.selectメソッドの問題らしい。
元ネタ
http://railsforum.com/viewtopic.php?id=27226
app/views/store/add?to?cart.rjs
page.select("div#notice").each { |div| div.hide }
page.replace_html("cart", :partial => "cart", :object => @cart)
page[:cart].visual_effect :blind_down if @cart.total_items == 1
page[:current_item].visual_effect :highlight,
:startcolor => "#88ff88",
:endcolor => "#114411"
こんなエラーがでる。
ActionView::TemplateError (undefined method `[]' for #<Enumerable::Enumerator:0x1041248a0>) on line #1 of app/views/store/add_to_cart.rjs:
1: page.select("div#notice").each { |div| div.hide }
2:
3:
4: page.replace_html("cart", :partial => "cart", :object => @cart)
/config/environment.rbに以下を追加して、WEBサーバを再起動。
unless '1.9'.respond_to?(:force_encoding)
String.class_eval do
begin
remove_method :chars
rescue NameError
# OK
end
end
end
RailsによるアジャイルWebアプリケーション開発 第2版
まじで勘弁して。
でも、この情報がRailsはじめた人の役に立てば良いと思う。