Rails メソッドについて

Rails newではツイートの投稿ページを作成するためのもの

投稿を保存などするものではなく投稿するためのフォームなどを作るために使うと考えておくといい

 

form_withではメソッドや、urlを指定していたが、コントローラーで

def new

 @tweet = Tweet.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 メソッドに関しては以上とする。