Ruby on Railsのお勉強 〜お問い合わせフォーム編(save) その7〜
はじめに
前回の作業でバリデーション(検証)が完了したので最後のデータ登録を試して見たいと思います。
↓バリデーションはこちら を参照ください。
やる事
...特に無し?
今回はただ単純に登録するだけなので特に難しい事はありません。
手順
thanksページまで遷移した前提で話を進めます。
因みにthanksページはこのように記述します。
class InquiryController < ApplicationController
... 中略 ...
def thanks
@inquiry = Inquiry.new(post_params)
if @inquiry.save == false
render template: 'inquiry/index'
end
end
... 中略 ...
end
たったこれだけでした。
save実行時にバリデーションが実行されるので、わざわざやる必要が無いそうです。
因みに、モデルに値を渡して初期化されるか確認するには、railsのコンソールで下記のようにコマンドできます。
>bundler exec rails console --sandbox
>inquiry = Inquiry.new(name: 'hoge_name', mail: 'hoge_mail@gmail.com', telephone: '12345')
=> #<Inquiry id: nil, name: "hoge_name", mail: "hoge_mail@gmail.com", telephone: "12345", created_at: nil, updated_at: nil>
だいぶ呆気ないのですが簡単なお問い合わせフォームで感覚を掴んでみる程度だと、こんなもんで登録できてしまいます。
課題
モデル
- 書き方(ビジネスロジックとの住み分け)
- 初期化(attr_accessorが不要な理由)
- 親子関係のテーブルの扱いかた
バリデーション
- 自作
- 組み合わせ
- テーブルの親子関係
その他
- 例外処理
- ロールバックの動き
- テーブル構築時の指定(not nullなど)
- データの流し込み作業
ざっと考えただけでもこれくらいある。
とりあえず、1つずつ吸収していくしかないですね。
お問い合わせフォームに関してはこれで完結とさせていただきます。
今後は疑問に思った事を中心に作業してみたいと思います。
以上、最後まで読んでいただきありがとうございます。