Posted at

paramsを用いた投稿画面の作成と保存

スクリーンショット 2019-08-15 2.39.08.png


処理の流れ

①投稿フォームにそれぞれの値が入力され[送信ボタン]が押される

②paramsを使って[/tweets]「name:image:text」の値が[post]で送信される

③ルーティングの設定で[/tweets][post]で送信された時にコントローラー内のcreateメソッドが発火するようになっている

④コントローラーのcreateメソッドでparamsで渡された値がデータベースに入る

[tweets_controller]

def create
Tweet.create(name: params[:name], image: params[:image], text: params[:text])
end

このようにparamsで持ってきた値をcreateメソッドを使い保存している。


ストロングパラメーター

ストロングパラメーターとはparamsを元に新たなハッシュを作成できるメソッドで、なおかつ

指定したキーを持つパラメーターのみを受け取るようにするものです。

もし仮に悪意のあるユーザーが、不正な情報を送信しようとしたときに、ストロングパラメーターを設定しておくと、不正な情報を受け取らずにすみます。


def create
Tweet.create(tweet_params)
end

private
def tweet_params
params.permit(:name, :image, :text)
end

permitメソッドはparamsの中の値から必要なカラムを残すメソッドであり、

こうすることで(:name, :image, :text)の入ったtweet_paramsが出来上がる