railsを学習しているruby初心者です。
現在、チュートリアルに沿ってProject Managementのアプリを開発しています。
その中で、表題のコードが出てきましたので、意味と使い方の2点について、私が理解したことを確認させてください。
問題となるコード
@team.users << current_user
これは、createアクション部分で使用しています。以下、全体です。
def create @team = current_user.teams.build(team_params) @team.users << current_user respond_to do |format| if @team.save format.html { redirect_to root_path, notice: 'Team was successfully created.' } format.json { render :show, status: :created, location: @team } else format.html { render :new } format.json { render json: @team.errors, status: :unprocessable_entity } end end end
A. 「<<」は要素の結合と理解しています。従って、「@team.users << current_user」 は、「@team.users」に「current_user」を追加しなさい、という命令と理解しました。まず、この理解は正しいでしょうか?
B. 次に、「@team.users << current_user」はどのような時に用いるのでしょうか? これは、teams_controller.rbの中で使用されており、teamモデルは、userモデルと関連しています。従って、teamsテーブルには、user_idが入ります。そこで、「@team.users << current_user」は 「@team.user_id = current_user.id」と同じことをしていると理解したのですが、この理解で正しいでしょうか?
以上、私の理解を確認させていただければと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/13 07:15