カテゴリ: Ruby
記事投稿日: 2012年12月18日
Ruby on Rails で js.erbファイル中でif文を使うとき、たとえば配列のオブジェクトにパラメータがないと、
条件がtrue/falseいずれの場合であれ、エラーとなるので注意する。
当然、Rubyの出力用パラメータはJavaScriptの条件に関係なく、出力される訳ですが、
その変数がセットされていないとエラーになってしまいます。
PHPで同じようなことをやった覚えがありますが、そちらはエラーにならなかったような…。
回避策としては、パラメータが必要のないテンプレート変数を用いるか、
配列を展開するのであれば、配列が空でない時、といった条件をつけて、
中身がある時だけ出力処理を実行します
↓
実際のスクリプト
var mode; mode = "<%= @mode %>"; if(mode == 'rest'){ #省略 }else{ <% if @License != nil %> → このif文がないと、mode == 'rest' の条件でもRubyのエラーが発生する。 $("#name").val("<%= @License.type %>"); $("#ver").val("<%= @License.ver %>"); <% end %> }
コメントを残す