カテゴリ: Ruby
記事投稿日: 2012年12月18日
記事更新日: 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 %>
}
コメントを残す