ActionView::SyntaxErrorInTemplate

今日は半日これにハマってしまって全く進まなかった。

なんてことないeach文で、一覧表示機能を実装していた時のこと。

コントローラー
def index
    @cases = Case.all
end
ビュー  
<% @cases.each do |case| %>
    <li><%= case.case_name %></li>
    <li><%= case.case_about %></li>
<% end %>

ActionView::SyntaxErrorInTemplate (Encountered a syntax error while rendering template: check

は???こんな簡単なeach文この道5ヶ月(赤ちゃん)の私が間違えるはずないのだが??

しかし向こうもなかなか折れちゃくれない。文法的なミスがあるとは考えづらい。

考えること3時間ほど・・・

「もしかして”case”つかえないんじゃね??」

そこで

<% @cases.each do |hoge| %>
    <li><%= hoge.case_name %></li>
    <li><%= hoge.case_about %></li>
<% end %>

無事一覧が表示されましたとさ。とほほ。

Rubyには予約語というものがあり、内部処理もしくは事前に定義されているメソッドに用いられる。

これらの予約語は変数名やオブジェクト、定数名として使うことはできない。

“case”は条件分岐で使われる予約語である。

気づけてよかった。

コメント

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