Rails メソッドについて
Rails newではツイートの投稿ページを作成するためのもの
投稿を保存などするものではなく投稿するためのフォームなどを作るために使うと考えておくといい
form_withではメソッドや、urlを指定していたが、コントローラーで
def new
end
といった形でインスタンス変数を指定しているのでmodel: @tweetとすることでメソッドとurlを指定しなくても良くなる。
Tweet.newと指定することで投稿先のパスやHTTPメソッドがいらなくなる
requireメソッドでは欲しい情報を指定することでそこだけゲットすることができる
params.require(:モデル1)といった風にするとモデル1の情報をだけ取ることだけできる
その中でpermitメソッドを使うことで上記のモデル1の中からテキストや、写真、登録した時間など細かく抜き取ることができる
params.require(:モデル1).permit(:キー名 :キー名)で抜き取ることができる
、params.require(:モデル1).permit(:image)といった形にする
プライベートメソッドではclassの外から取り出してほしくない情報を書いていくことができる
バリデーション
バリデーションはからの情報を送信することができないようにするメソッド
validates :name, presence: trueとすることでnameが空の状態で登録できないようにすることができる
ツイートIDにパラメーターを持たせる方法
/tweets/tweetのidとすることでパラメーターを送ることができる
link_to '削除', "/tweets/{tweet.id}", method: :deleteとすると削除ボタンが追加される
editアクション
流れとしてはツイートの編集ボタンを押して、editアクションに遷移して編集作業ページにいく。その後に、編集して編集完了ボタンを押したらupdateアクションで変更することができる。
beforeアクション
コントローラーの処理で同じ処理をするものがあるが、それを最初にまとめて処理して、記述の量を減らす役割を持つ。また、onlyを使うことによってどこのアクションでこの処理を行うのかを指定するコマンド。
before_action :set_tweet, only: :edit, :showといった形で使う
とりあえず今回のRails メソッドに関しては以上とする。