私はRubyを初めて使っていて、現在いくつかの実験を試みています。ERBテンプレートの配列を反復するオブジェクトがnilになるのはなぜですか?
私は、これらのスクリプトについて混乱しています:
<%[email protected][2].topic%>
と
<% id = 1 %>
<%[email protected][id+1].topic%>
@mywodrld
は、モデルのインスタンスであるとtopic
はフィールドです。最初のプログラムを実行すると、プログラムは正しく実行されます。 2番目のスクリプトを実行すると、次のエラーが表示されます。
You have a nil object when you didn't expect it! The error occurred while evaluating nil.topic
nilオブジェクトの原因は何ですか?
私はこの問題は、第二の例の2行目の「ID」はゼロであるということだと思います。私は今はRailsではありませんが、テンプレートで変数を作成することはできません。 – demas
私はまだそれを取得しません。私は、このように2番目の例<%= debug(@myworlds [@ id + 1])%>をデバッグしようとすると、スクリプトは正しく実行されますが、トピックフィールド<%= debug(@myworlds [@id +1] .topic)%>失敗します。 –
idをnilにすることはできません。それ以外の場合は、コードはid + 1になります。 @Aditya Hastungkoro Hadiはあなたがどの行をチェックできるか<%= "DEBUG:#{id + 1}"%>おそらく最初は2とは思えません。 – fifigyuri