(Rails)インスタンス変数が表示されない
状況
インスタンス変数を定義し、viewの方で変数をそのまま表示しようとしたがうまく生じされなかった。
controller
def about @variable=10 end
views
<%=@valiable%>
考えられた原因
- 表示する部分の構文ミス
- インスタンス変数に値がうまく入っていない
実施したこと
- 表示する部分の構文ミスを確認するために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
としっかりと表示された
まとめ
インスタンス変数を渡すときは文字型で渡す。
インスタンス変数を文字でしていて、変数表示したい場合は以下を参照してください。