テックキャンプ78日目

kobasaです(´ω`*)
何とか実装課題を完成させて現在レビュー待ちです。
本番環境でも動いていたので大きな問題はないと思うんですけど、どうなるかな?

78日目の勉強内容

コメント投稿機能を実装していたのですが、
ルーティングのネストやコントローラーをまたいで?アクションを記述する部分が出てくるとよく分からなくなりますね。
エラーを起こさず期待した動作はしてるっぽいんですが、
正しい記述なのか、なぜそういう記述なのかを説明できないです。

親モデルが消えたら、子モデルのデータも消えるようにする

dependent: :destroyは親モデル(投稿)の存在が消えたときに付随する子モデル(コメント)も消えるようにするオプション
親モデルファイルのアソシエーションの記述にオプションを追記する。

URL直接書き込みでのアクセスを制限する

  def move_to_index
    @prototype = Prototype.find(params[:id])
    unless @prototype.user_id == current_user.id
      redirect_to root_path
    end
  end

個別の投稿へのリクエスト(URL末尾がprototypes/2など)には
パラメータに投稿のidが含まれるため、そのidと一致するテーブルのカラムを探し出し変数に代入。
「現在のユーザーのid」と「取得した投稿のidに紐づくユーザーのid(投稿者)」が一致しなければ強制的にトップページに戻す。というメソッド。

コメント

タイトルとURLをコピーしました