rails 独学して軽くにちゃんまとめつくる

インターン中大学生のブログ

ぐるぐる回って何をしたいのかが変わってく。今はマッチングサイトを作りたい、もしくは論文のキュレーションサイトかな。

progate疑問一覧

・リレーションモデルでhas_manyとthroughとsourceで関連付けて、テーブルで作成していないカラムを作成しているがその理屈がわからない。さらにこのlike_notesはコントローラーのアクションでもdefで定義してあるし、ルーティングにもでてきてる。いったいどこで定義したものなのだろうか。

また、どこかでリレーションモデルはインスタンスを関連づけているものだからlike_notesがテーブルに存在しなくてもいいだとかなんとか。わけわからん。

------User.rb

has_many :like_notes, through: :likes, source: :notes

 

 

 

 

 

 

・redirect_to と render の違いがわからない。

ruby-rails.hatenadiary.com

この記事にこたえがありそうだがさっぱりわからん。

とりあえず

  • データを追加、更新、削除するときは、「リダイレクト」
  • データの取得して表示するときは、「レンダー」

こういうものだということにしておく。

renderとredirect_toの違い - Qiita

こういうのもあった。

 

redirect_toはアクションを経由してビューを出力するのに対して、

renderはアクションを経由せずそのままビューを出力する。

 

 これならよくわかった。いいね!の作成時、like_notesとnotesの表示をさせるのにどちらもshowが使われていたし、どちらも同じインスタンス変数を定義していた。だからrenderなんかしたら上書きされちゃうじゃないかと思ったが、renderはアクションを経由しないから問題ないのか。