RailsによるアジャイルWebアプリケーション開発をやってるときにつまずいたところ

Ruby

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はじめた人の役に立てば良いと思う。

タイトルとURLをコピーしました