Contents
Railsチュートリアルをやってみて
Railsチュートリアルをやってみました。所要時間・感想・学べることをざっくりまとめてみます。
私のSPEC
Rubyは少し知っている。
Webアプリケーションの開発経験はあり(ただしPHPの古いシステムがほとんど)
所要時間
40時間程度。14章あるので、1章あたり平均3時間弱。8時間勤務の会社だと5日間かかる(まる1週間)が、やってみる事をお勧めしたい。
所感
まず、やってみてよかった。
チュートリアルではあるが、実践に活かせそうな機能実装が豊富。
特にユーザ認証(ログイン)の機能は、どのようなWebシステムでも使用される機能であるため、有意義。セキュリティ面も考慮されている。
また、RailsではCSRF(クロスサイトリクエストフォージェリ)やSQLインジェクションへの対策がデフォルトで行われるため、機能実装に専念できる。(最近のフレームワークだと当たり前か)
Railsのチュートリアルではあるが、最近のMVCフレームワーク基本が学べるので、他のフレームワーク(PHPのLaravelとか)の飲み込みも早くなりそう。
学べること
- Railsの基本実装方法
- テスト駆動開発(TDD)
- gitの基本コマンド
- Herokuへのデプロイ方法
- Sass(CSSを拡張して、より効率的に書けるようにしたやつ)
- awsのS3の使い方
はまったとこ
メール送信(heroku add onのSendGridを使用)
config/environments/production.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
. . . config.action_mailer.raise_delivery_errors = true config.action_mailer.delivery_method = :smtp host = '<your heroku app>.herokuapp.com' config.action_mailer.default_url_options = { host: host } ActionMailer::Base.smtp_settings = { :address => 'smtp.sendgrid.net', :port => '587', :authentication => :plain, :user_name => ENV['SENDGRID_USERNAME'], :password => ENV['SENDGRID_PASSWORD'], :domain => 'heroku.com', :enable_starttls_auto => true } . . . end |
<your heroku app>のところにはホスト名を入れる。ホスト名なので当たり前だが、http://は不要。私は誤まってhttp://を入れてしまったところ、アカウントロック(herokuからSendGridへアクセスするとhttpステータス403で弾かれる)され、ホスト名に変更後も送信できない事態に陥ったので、サポートに下記の文で連絡しロック解除してもたった。
1 |
My account was suspended. Please regain access. Id: メールアドレス |
S3
基本はチュートリアルのままでOKだが、ブロックパブリックアクセス (バケット設定)で下記のチェックを外さないとS3へのアクセスができなかった。
- 新しいアクセスコントロールリスト (ACL) を介して許可されたバケットとオブジェクトへのパブリックアクセスをブロックする
- 任意のアクセスコントロールリスト (ACL) を介して許可されたバケットとオブジェクトへのパブリックアクセスをブロックする
Waning
Ruby2.7.0を使ってみたら、テスト実行時やマイグレーションなどあらゆる場面でWarningが出たので、Ruby2.6.2に切り替えたところWarningは出なくなった。