RJSでのサンプルコードがいろいろと実挙動と違うのでメモ。
まずは、動かないサンプルソース。
page[:current_item].visual_effect :highlight,
:startcolor => "#88ff88",
:endcolor => "#114411",
そして、動くソースはこちら。
page.visual_effect :highlight,
"current_item",
:startcolor => '"#88ff88"',
:endcolor => '"#114411"'
1.まず、メソッドが認識しない。
サンプルソースのpage[:current_item]という書き方自体がActionTemplateでsyntaxエラーをはく。
2.js_options={} の処理
ソースを見るとキーに対する値をくっつけてるような処理をしている。
次に、このjavascript処理をしているaculousのリファレンスを確認。
サンプルデモを見る限り、配色指定をする際には””か”で値を入れてやる必要がある。
ということは、RJSでつくられたものの値に”か’が入っていないとaculousの処理で落とされる。
よって、RJSでの記載の際には”か’を二重で入れる必要がある。
aculousの値処理で”か’が必要でない値は不要である。
ということ?
visual_effectのメソッドの一部の意味がわからないから確証なし。
(わからないとこ => js_options[:queue] = if js_options[:queue].is_a?(Hash))
RailsによるアジャイルWebアプリケーション開発 第2版
この話が問題だったところ
第9章3節 イテレーション D3:変更内容の強調表示