RJSでpage.visual_effectのhighlightのオプション

Ruby
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:変更内容の強調表示

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