はじめに
Rails 学習時にインスタンス変数に関して疑問点があったため、記載します。
indexアクションのインスタンス変数が複数形である理由について
下記のindexアクションとshowアクションを見比べてみると分かるのですが、indexアクションのインスタンス変数は複数形@usersになっています。
また、showアクションなど他のアクションのインスタンス変数は単数形@userで表現されています。
users_controller.rb
def index
@users = User.all
end
def show
@user = User.find(params[:id])
end
この理由は、indexアクション以外は、パラメータでidを取得しているため、Userデータの1つの配列として格納されているのに対し、indexアクションはビューで利用したい全てのUserデータを取得し、インスタンス変数に格納されます。
そのため、インスタンス変数に格納されている配列が単数か複数かによって、インスタンス変数の表記も単数形と複数形で使い分けているのです。