#前提・実現したいこと
ProgateでRailsの学習をしております。postsデータベースからデータを取り出して表示するために、コントローラーの中で@postにデータを代入しました。更にルーティングで:idを設定し、パラメータを受け取れるようにし、それを@idに代入しました。
htmlの方でそれを取り出そうと思い、下記のようなコードを書いてみましたが、エラーになりました。アクセスしたurlは/posts/0です。
試しに、@idの部分を@post[0]で書くと正常に動作しました。
#発生している問題
下記のようなメッセージがブラウザに表示されました。
TypeError in Posts#show
@idが0と同じなら、@idでも同様の結果が出るはずだと考えたのですが、何が違うのでしょうか?
#該当のソースコード
rb
1get "posts/:id" =>"posts#show"
rb
1 def show 2 @post =Post.all 3 @id =params[:id] 4 end
html
1 <%=@post[@id].content%>
回答2件
あなたの回答
tips
プレビュー