3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rails(v4)チュートリアル7章メモ

Posted at

デバッグ情報をブラウザに表示

開発中は以下のコードをテンプレートに埋めこむと開発がやりやすくなる。

application.html.erb
<%= debug(params) if Rails.env.development? %>

テスト確認用ユーザーを用意

Factory Girlを使うとモデルを使ったテストが楽に出来る

spec/factories.rb
FactoryGirl.define do
  factory :user do
    name     "Michael Hartl"
    email    "michael@example.com"
    password "foobar"
    password_confirmation "foobar"
  end
end

シンボル:userがfactoryコマンドに渡されると、Factory Girlはそれに続く定義がUserモデルオブジェクトを対象としていることを認識する。

ハッシュ保存するパスワードなどを含むモデルを使ったテストは遅い。

  • BCryptアルゴリズムによるセキュアパスワードのハッシュ生成そのものが仕様上遅い

対策としては以下のコードを埋め込む

config/environments/test.rb
SampleApp::Application.configure do
  .
  .
  .
  # bcrypt'のコスト関数を下げることでテストの速度を向上させる。
  ActiveModel::SecurePassword.min_cost = true
end

redirect_to @user(@model)

redirect_to @userと書けばユーザー表示ページに移動(User#show (ルーティングによる))

参考URL

flash

登録完了後に表示されるページにメッセージを表示し (この場合は新規ユーザーへのウェルカムメッセージ)、2度目以降にはそのページにメッセージを表示しないようにするというものです。Railsでは、こういう場合にflashという特殊な変数を使用できます。この変数はハッシュのように扱うことができます。

SSLを導入して本番環境をデプロイする

config/environments/production.rbを以下のように修正(コメントを外す)

config/environments/production.rb
SampleApp::Application.configure do
  .
  .
  .
  # Force all access to the app over SSL, use Strict-Transport-Security,
  # and use secure cookies.
  config.force_ssl = true
  .
  .
  .
end

herokuに公開

上記URLを参考にもろもろ準備する。

$ heroku run rake db:migrate

上記コマンドを実行してherokuの環境にデータベースを用意する

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?