(Rails)インスタンス変数が表示されない

状況

インスタンス変数を定義し、viewの方で変数をそのまま表示しようとしたがうまく生じされなかった。

controller

def about
@variable=10
end

views

<%=@valiable%>

考えられた原因

  1. 表示する部分の構文ミス
  2. インスタンス変数に値がうまく入っていない

 実施したこと

  1. 表示する部分の構文ミスを確認するためにif文でチェックした。

views ruby <%=@valiable%> <%=if @valiable ==10%> variable is 10 <%else%> variable is not 10 <%end%> 結果 ruby variable is not 10 つまり、そもそも@valiableには10が入っていない。

ここでいろいろと調べてみたら何やら「変数を文字から数字に変換」という文章が多く見つかったので、 元々文字であるのかと思い以下のコードを実行した。

controllers

def about
@variable="10"
end

(viewはif文のまま)

結果

10
variable is not 10

うまく表示されている。

viewのif文の10を"10"になおして実行すると、

10
variable is 10

としっかりと表示された

まとめ

インスタンス変数を渡すときは文字型で渡す。

インスタンス変数を文字でしていて、変数表示したい場合は以下を参照してください。