本投稿の目的
・Rails学習の議事録です。
学習に使った教材
Udemyの "はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう" を教材として使用しました。
①Validates(バリデート)
・modelファイルに対して実施
・ユーザーが入力した値をdb保存する際の条件を指定できる
・Ex)空入力禁止,最大文字数10文字まで...
def model名
validates :column名, 条件: 値の指定
end
【解説】
○validates :column名
⇒条件を課したいcolumn名を記載
○条件: 値の指定
⇒実施したい制約に応じた記述法を記述
⇒以下に2つ例を記述する
・空入力禁止
presence: true
・最大文字数10文字まで
length: { maximum: 10 }
②params
・配列を入れるための箱(ハッシュ)
・ユーザーが送信したデータを一時的にparamsに格納
・その中から,必要なハッシュにヒットする値を取り出す
【例: ユーザーが名前と年齢をフォームから送信した場合】
・フォームからparams へ次のように格納される
params = [:name,'naoto', :age,24]
・名前を取得したい場合
params[:name]
・年齢を取得したい場合
params[:age]
③strong_parameters
・指定したcolumn情報以外のフォーム受信値を無視するフィルター
【いつ役に立つ?】
・ECサイトを作成したと想定
・ユーザーがフォームでソースを操作
・ポイントcolumnを修正し残高を高めに変更
・こういった改ざん処理を止めるための設定
【使いかた】
・controller中に記述(フォーム送信後のインスタンス生成時)
・引数にこのメソッドを()で指定する
・フィルタされた値がdbへ格納
【例:question_paramsメソッド】
params.require(:question).permit(:name, :title, :content)
【paramsには以下が格納された場合を想定】
params = [
question={name: 'naoto',age: 24, content: '質問内容'},
answer={name: 'kanopyo',age: 27, content: '回答内容'}
]
【解説】
〇.requireについて
⇒モデル名をキーに指定
〇.permitについて
⇒.requierで指定したモデルのプロパティをキーに指定