読者です 読者をやめる 読者になる 読者になる

牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

レイルに乗ってみた〜Rails of Ruby on Rails その16「コンタクトフォームで躓いた(つдT)」

Rails

レイルに乗ってみた〜 目次
書籍『Rails of Ruby on Rails ~Case of LOCUSANDWONDERS.COM~』で勉強してみた(P176〜)

メーラージェネレータでContactモデルを作成

G5:~/work/locus username$ script/generate mailer ContactMailer
      exists  app/models/
      create  app/views/contact_mailer
      exists  test/unit/
      create  test/fixtures/contact_mailer
      create  app/models/contact_mailer.rb
      create  test/unit/contact_mailer_test.rb
Loaded suite script/generate
Started

Finished in 0.012119 seconds.

0 tests, 0 assertions, 0 failures, 0 errors
G5:~/work/locus username$

モデルを修正

/work/locus/app/models/contact_mailer.rb
@recipientsを送信先のメールアドレスにして、あとは書籍通りなので略。

コントローラの追加

G5:~/work/locus username$ script/generate controller contact index sended

      exists  app/controllers/
      exists  app/helpers/
      create  app/views/contact
      exists  test/functional/
      create  app/controllers/contact_controller.rb
      create  test/functional/contact_controller_test.rb
      create  app/helpers/contact_helper.rb
      create  app/views/contact/index.html.erb
      create  app/views/contact/sended.html.erb
Loaded suite script/generate
Started

Finished in 0.001406 seconds.

0 tests, 0 assertions, 0 failures, 0 errors

ファイルを変更。
/work/locus/app/controllers/contact_controller.rb
書籍の通りなので略。

/work/locus/app/controllers/contact_controller.rb

フォームの追加

書き換え
/work/locus/app/views/contact/index.html.erb
書籍の通りなので略。

送信完了ページを追加

書き換え
/work/locus/app/views/contact/sended.html.erb

ブラウザで確認

http://localhost:3000/contact

入力を検証する Active Formプラグインをインストール

GitHub · Build software better, together.』で「Active Form」を検索。
cs/active_form · GitHub」が見つかったのでClone URL:を使って以下コマンド。

G5:~/work/locus username$ script/plugin install git://github.com/cs/active_form.git
removing: /work/locus/vendor/plugins/active_form/.git
Initialized empty Git repository in /work/locus/vendor/plugins/active_form/.git/
remote: Counting objects: 14, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 14 (delta 1), reused 9 (delta 0)
Receiving objects: 100% (14/14), 4.23 KiB, done.
Resolving deltas: 100% (1/1), done.

Active Formモデルの作成

新規にファイルを作成
/work/locus/app/models/contact.rb
書籍の通りなので略。

コントローラを修正

変更修正
/work/locus/app/controllers/contact_controller.rb
書籍の通りなので略。

ブラウザで確認

http://localhost:3000/contact
何も記入せず送信をクリック。

検証(バリデーション)機能OK。(でもActive Form使う前にどうなるか確認し忘れたが(´・ω・`))

メモ

  • よっしゃぁ第4章終了(・∀・)b