20200730のRailsに関する記事は14件です。

バリデーションエラーの表記を日本語表記に変更する方法

学習を進めてる中Name can't be blank等のバリデーションエラーを日本語に変更する方法を学んだのでまとめようと思います。

まず日本語の設定にするためのgemをインストールします。

Gemfile
gem 'rails-i18n'

これだけではまだ変更は完了していません。
config/application.rbに以下の一文を追記します。これにより、サーバ再起動後にエラーメッセージが日本語化されます。

config.i18n.default_locale = :ja

これにより、サーバ再起動後にエラーメッセージがこのように表示されるはずです。

Nameを入力してください。

カラムの日本語化自体もできるみたいですが今後実装する際に追記したいと思います。

ちなみに。。。。。

i18nとは

Wikipediaによると・・・

情報処理における国際化と地域化(こくさいか と ちいきか)は、ソフトウェアを開発した環境とは異なる環境、特に外国や異文化に適合させる手段である。

国際化(アメリカ英語: internationalization イギリス英語: internationalisation、i18n) は、ソフトウェアに技術的な変更を加えることなく多様な言語や地域に適合できるようにする、ソフトウェア設計の工程である。

ソフトウェアの技術的変更なしで様々な言語に対応できるということでしょうか。。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

RSpecの単体テストにて"translation missing: ja.activerecord.○○"というエラーが出たときの対処法

Deviseを日本語化したときのエラー。エラー画面はこんな感じ。
image.png

◆原因

どうやらdeviseのエラーメッセージを日本語化したことによって本来Deviseで用意されているエラー文(英語)テスト実行時のエラー文(devise.ja.yml)に相違が出てしまい、エラーになってしまってるぽい。

◆解決策

巷に落ちているdevise.ja.ymlの内容もそれぞれ引用元によって異なるため、このエラーが出た際にはdevise.ja.ymlに記述を追加する必要がある。

実際に記述を追加していく。
今回の場合エラー分が
expected [translation missing: ja.activerecord.errors.models.user.attributes.name.blank] to include "can't be blank"
なので

config/locals/devise.ja.yml
ja:
  activerecord:
    errors:
      models:
        user:
          attributes:
            name:
              blank: "が入力されていません"

と追記してあげる。

これで無事にテストが通るように!

参考にした記事

Devise日本語化後の「translation missing」に対処する

translationmissing:ja.activerecord.errors.models.hoge.attributes.base.restrict_dependent_destroy.many の対処方法

Createの際のエラーUser translation missing: ja.activerecord.errors.models.company.attributes.user.required

deviseを日本語化する

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Fabricateの使い方をまとめる

なんとなく使えてしまうFabricateですが、ふとしたきっかけでちゃんと理解したいなと思ったのでまとめました。

Fabricateとは

オブジェクト生成ライブラリです。
テストで使用するためのオブジェクトを簡単に作成できます。

使い方

非常にシンプルで、モデルの属性に無難なデフォルト値を設定します。
サンプルでpersonというオブジェクトを定義しました。

Fabricator(:person) do
  name "Niki"
  age 23
end

生成メソッド

生成メソッドは3種類あります。よく使うのはFabricate.buildFabricate

Fabriate(:person)
# newしてsaveしたものを返す
Fabricate.build(:person)
# newだけしてsaveはしない
Fabricate.attributes_for(:person)
# 属性のHashを返す

一見Fabricate.buildは必要なくない?となりますが、これは間違いです。
.buildを使うとインスタンスを保存しないので、specの処理時間の軽減につながります。

なので、.buildを使えない場合のみインスタンスを生成し、基本的には.buildを使うようにしています。

属性の値を明示する

定義したオブジェクトの属性の値を変えたい場合は以下の様にします。

person = Fabricate(:person, name: "Peru")
person.name = "Peru"

また、関連しているデータを紐づけることも簡単にできます。
例えば、bookモデルがbelong_topersonモデルに紐づいている場合は以下の様にしてFabricateで表現できます。

Fabricator(:book) do
  name "キングダム"
  price 1000
end

book = Fabricate.build(:book, person: Fabricate.build(:person))

これらは基本的な内容ですが、ちゃんと理解するとテストのコーディングスピードも上がると思います。他にも色々便利なメソッドがありますので暇があれば調べてみて下さい。
何かいいメソッドや書き方があれば、是非コメントください!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Rspec]Fabricateの使い方をまとめる

なんとなく使えてしまうFabricateですが、ふとしたきっかけでちゃんと理解したいなと思ったのでまとめました。

Fabricateとは

オブジェクト生成ライブラリです。
テストで使用するためのオブジェクトを簡単に作成できます。

使い方

非常にシンプルで、モデルの属性に無難なデフォルト値を設定します。
サンプルでpersonというオブジェクトを定義しました。

Fabricator(:person) do
  name "Niki"
  age 23
end

生成メソッド

生成メソッドは3種類あります。よく使うのはFabricate.buildFabricate

Fabriate(:person)
# newしてsaveしたものを返す
Fabricate.build(:person)
# newだけしてsaveはしない
Fabricate.attributes_for(:person)
# 属性のHashを返す

一見Fabricate.buildは必要なくない?となりますが、これは間違いです。
.buildを使うとインスタンスを保存しないので、specの処理時間の軽減につながります。

なので、.buildを使えない場合のみインスタンスを生成し、基本的には.buildを使うようにしています。

属性の値を明示する

定義したオブジェクトの属性の値を変えたい場合は以下の様にします。

person = Fabricate(:person, name: "Peru")
person.name = "Peru"

また、関連しているデータを紐づけることも簡単にできます。
例えば、bookモデルがbelong_topersonモデルに紐づいている場合は以下の様にしてFabricateで表現できます。

Fabricator(:book) do
  name "キングダム"
  price 1000
end

book = Fabricate.build(:book, person: Fabricate.build(:person))

これらは基本的な内容ですが、ちゃんと理解するとテストのコーディングスピードも上がると思います。他にも色々便利なメソッドがありますので暇があれば調べてみて下さい。
何かいいメソッドや書き方があれば、是非コメントください!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Rspec]Fabricateの基本的な使い方まとめ

なんとなく使えてしまうFabricateですが、ふとしたきっかけでちゃんと理解したいなと思ったのでまとめました。

Fabricateとは

オブジェクト生成ライブラリです。
テストで使用するためのオブジェクトを簡単に作成できます。

使い方

非常にシンプルで、モデルの属性に無難なデフォルト値を設定します。
サンプルでpersonというオブジェクトを定義しました。

Fabricator(:person) do
  name "Niki"
  age 23
end

生成メソッド

生成メソッドは3種類あります。よく使うのはFabricate.buildFabricate

Fabriate(:person)
# newしてsaveしたものを返す
Fabricate.build(:person)
# newだけしてsaveはしない
Fabricate.attributes_for(:person)
# 属性のHashを返す

一見Fabricate.buildは必要なくない?となりますが、これは間違いです。
.buildを使うとインスタンスを保存しないので、specの処理時間の軽減につながります。

なので、.buildを使えない場合のみインスタンスを生成し、基本的には.buildを使うようにしています。

属性の値を明示する

定義したオブジェクトの属性の値を変えたい場合は以下の様にします。

person = Fabricate(:person, name: "Peru")
person.name = "Peru"

また、関連しているデータを紐づけることも簡単にできます。
例えば、bookモデルがbelong_topersonモデルに紐づいている場合は以下の様にしてFabricateで表現できます。

Fabricator(:book) do
  name "キングダム"
  price 1000
end

book = Fabricate.build(:book, person: Fabricate.build(:person))

これらは基本的な内容ですが、ちゃんと理解するとテストのコーディングスピードも上がると思います。他にも色々便利なメソッドがありますので暇があれば調べてみて下さい。
何かいいメソッドや書き方があれば、是非コメントください!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

postgres sqlコマンド 自分用

postgresqlよく使うコマンド

※#から始まるコマンドはpsql内で、$から始まるコマンドはpsql外で実行するコマンドとなる。

バージョンを確認する

$ psql —version
# select version(); 

ヘルプを表示

$ psql --help
# \?
# \h

データベース

データベースに入る

$ psql <DB_NAME>

ユーザーを指定してデータベースに入る

$ psql -U <USER_NAME> <DB_NAME>

データベースから出る

# \q

データベースを起動

$ postgres -D /usr/local/var/postgres

データベース一覧表示

$ psql -l
# \l

データベースの切り替え

# \c <DB_NAME>
# \connect <DB_NAME>

データベースを削除

# drop database <DATABASE_NAME>;

テーブル テーブル一覧表示(viewやsequenceも含む)

# \d

テーブル一覧表示

# \dt

テーブルのスキーマの詳細を表示

# \d <TABLE_NAME>

テーブルのアクセス権限表示

# \z <TABLE_NAME>

viewの一覧を表示

# \dv

viewの定義を表示

# select definition from pg_views where viewname = '<VIEW_NAME>';

テーブル名変更

# alter table <CURRENT_DB_NAME> rename to <NEW_DB_NAME>;

テーブルを削除

# drop table <TABLE_NAME>;

ユーザー権限

現在のユーザー(Role)を表示

# select current_user;

ユーザー(Role)の一覧を表示

# \du

ユーザー情報一覧を表示

# select * from pg_user;

ユーザー (Role)に権限を付与

# grant select, insert, update, delete on <TABLE_NAME> to <USER_NAME>;

ユーザー (Role)に権限を剥奪

# revoke select, insert, update, delete on <TABLE_NAME> from <USER_NAME>;

ユーザーの切り替え

# \connect - <USER_NAME>

スーパーユーザーへ変更

# alter role <USER_NAME> with creatural superuser;

スーパーユーザー権限剥奪

# alter role <USER_NAME> with creatural nosuperuser;

スキーマ

スキーマ作成

# create schema <schema_name>;

スキーマを確認

# select current_schema;

スキーマ一覧

# \dn

スキーマ変更

# set search_path to <schema_name>;
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Railsでslimを使う

プログラミングの勉強日記

2020年7月30日 Progate Lv.226

概要

 こちらの記事で扱ったgemのslimを説明する。slimはHTMLよりもコードを早くきれいにシンプルに書ける。erbと同じで、Rubyを埋め込むこともできる。Hamlと似ていて、slimには閉じタグが存在しないので、コードを簡単かつすっきり書くことができる。

使い方

 slimを使うためにGemfileを編集する。

Gemfile
gem 'slim-rails'

 Gemfileを編集したら、hamlをインストールする。

ターミナル
bundle install

 これで、index.html.slimといったビューファイルの拡張子にslimを使えるようになる。

すでにあるerbファイルをslimファイルに変えたい場合

Gemfile
gem 'html2slim'
ターミナル
# erbファイルを残して変換
erb2slim 変換するファイルがあるフォルダまたはファイル名

# erbを削除して変換
erb2slim 変換するファイルがあるフォルダまたはファイル名 -d

基本的な書き方

slimタグには閉じタグが必要ない。代わりにインデントを使ってマークアップする箇所を指定する。インデントはそろえる必要がある。(3つのスペースを使ったらその後も3つスペースに、4つスペースを使ったらそのあとも4つスペースに)

slim
doctype html
div
  h1 Hello World!
  ul
    li Ruby
    li Rails
    li HTML

 HTMLで以下のように変換されている

html
<!DOCTYPE html>
<div>
  <h1>Hello World!</h1>
  <ul>
    <li>Ruby</li>
    <li>Rails</li>
    <li>HTML</li>
  </ul>
</div>

slimの書き方

各タグの書き方

slimでの書き方 コンパイル後のコード(HTML)
div <div></div>
html <html></html>
meta <meta></meta>
header <header></header>
footer <footer></footer>
table <table></table>
h1 <h1></h1>
p <p></p>
a <a></a>
ul <ul></ul>
li <li></li>

テキストの書き方

 テキストは|で定義する。

slim
p
  |  Hello World

/複数行の場合(改行なし)
p
  |
    こんにちは。
    私の名前は田中太郎です。

/複数行の場合(改行あり)
p
  |
    こんにちは。<br>
    私の名前は田中太郎です。

HTMLでは以下のように変換されている

html
<p>Hello World</p>

<p>こんにちは。
   私の名前は田中太郎です。</p>

<p>こんにちは。<br>
   私の名前は田中太郎です。</p>

属性の書き方

 
slim:slim
a href='http://www~' リンク先の名前

 HTMLでは以下のように変換されている

html
<a href="http://www~">リンク先の名前</a>

IDとclassの書き方

divを省略することができる。

haml
#id_name
  idを指定する

div.class_name
  classを指定する

.class_name
  classを指定する

 HTMLでは以下のように変換されている

html
<div id="id_name">idを指定する</div>

<div class="class_name">classを指定する</div>

<div class="class_name">classを指定する</div>
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

コントローラーでのデータ検索等

データの絞り込み

データの絞り込みは下記の構成

例)Task.all.first
Task = 起点
all = 絞り込み条件
first = 実行部分

起点

処理対象のモデルのクラス

絞り込み条件

メソッド 効果
where 特定のレコードの検索
order 検索結果の並び順を指定
joins 他のテーブルとのJOINを指定
group 指定したカラムの値を基準にデータをグループ化
select 指定したからむだけを属性として取得する
limit 取得個数を制限する
distinct 取得するカラムの値が一致しているデータは除外してデータを取得 
all 全件取得
none 何もヒットさせない

実行部分

メソッド 効果
find idを指定して取得 ない場合は例外 Task.find(1)
find_by 条件指定し取得 ない場合はnil Task.find_by(name:"mayu")
なし 他のテーブルとのJOINを指定
first 検索条件に合う最初のレコードに対応するオブジェクトを取得
last 検索条件に合う最後のレコードに対応するオブジェクトを取得
exisit? 検索条件に合うレコードの有無を取得
count 取得するカラムの値が一致しているデータは除外してデータを取得 
average COUNT関数を使って平均を取得
maximun AVG関数を使って最大値を取得
minimum AVG関数を使って最小値を取得
update_all 検索条件にあうレコードを全てインスタンス化せずに更新
delete_all 検索条件にあうレコードを全てインスタンス化せずに削除
destroy_all 検索条件にあうレコードを全てインスタンス化した上で削除

並び替え

tasks_controller
class TasksController < ApplicationControlller
 def index
  @tasks = current_user.tasks #新しい順で検索するには① 古い順で検索するには②
  @tasks = current_user.tasks.order(created_at: :desc) #①
  @tasks = current_user.tasks.order(created_at: :asc) #②

 end

scopeの活用

scopeを使い、クエリ用のメソッドの連続した呼び出し部分に名前をつけて、メソッドとして使用することができる

model
class Task < ApplicationRecord
 scope :recent, -> {order(created_at: :desc)} #recentという名で定義
end

#recentの使い方
tasks = Task.recent
task = Task.recent.first
task = Task.recent.last
tasks = current_user.tasks.recent
tasks = Task.where(user_id: [1,2,5]).recent

フィルタ

同じコードを複数記述していると変更を行う必要があるときに重複箇所全てに対して変更を行わなければいけない。フィルタを使って重複を避けることを心がける

tasks_controller
class TasksController < ApplicationController
 before_action :set_task, only: [:show, :edit, :update, :destroy]

 def show
 end
 def edit
 end
 def update
 end
 def destroy
 end

 private 
 def set_task
  @task = current_user.tasks.find(params[:id])
 end
end

URL表示

rails_autolinkと言うgemを使いURLを表示させる

gemfile
gem 'rails_autolink'
auto_link(simple_format(h(@task.description),{},sanitize: false, wrapper_tag: "div:))

参考|現場で使える Ruby on Rails 5速習実践ガイド

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Controllerを作成しよう

Controllerを作成する

コントローラでは、ユーザーのリクエストを受けてModelと連携したり、
どの画面(View)を表示するかを制御しています。
ユーザーがURLにアクセスしたときに、リクエストを最初に受け取るのがコントローラです。
受け取ったリクエストを元にして、Modelからのデータを、対応するViewに渡して画面を表示させます。

具体的には、以下のような制御を行っています。

Modelとやり取りする
Viewに渡すインスタンス変数を定義する
表示するViewファイルを指定する

controllerを作成するのは以下を実行するだけです。
gはgenerateの略称です。

$ rails g controller コントローラ名

ただ、一つだけ注意があります。
コントローラー名は複数形になります。こんな感じです。

$ rails g controller homes

成功するとこんな感じになります。

[vagrant@localhost sample_app]$ rails g controller homes
Running via Spring preloader in process 29768
      create  app/controllers/homes_controller.rb
      invoke  erb
      create    app/views/homes
      invoke  test_unit
      create    test/controllers/homes_controller_test.rb
      invoke  helper
      create    app/helpers/homes_helper.rb
      invoke    test_unit
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/homes.coffee
      invoke    scss
      create      app/assets/stylesheets/homes.scss

間違えてControllerを作成してしまったら?

コントローラー名などを間違えて作成した場合は、以下のコマンドで消しましょう。

勘の良い人はわかるかもしれませんが、
dはdestroyを意味します。

[vagrant@localhost sample_app]$ rails d controller homes
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MVC(Model View Controller)を理解しよう

MVC(Model View Controller)とは?

railsはMVCという考え方で構成されています。
全てのコードを同じ場所に書いてしまうと、コードが複雑になるため、
railsでは、保守性を維持するために、Model、View、Controllerの3つの処理パターンに分けて管理しています。

model

データを扱う部分です。
データベースに対して、データの登録や取得、更新、削除などの処理を行います。

view

PCの画面に関わる部分です。
HTMLを読み込み、ブラウザに表示させるためのものです。

controller

modelとviewの中間に位置します。
ユーザーからのリクエストを受けて、Modelと連携したり、どの画面(View)を表示するのかといったことを制御します。

image.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Rubyで「ある期間の毎月1日」をDateオブジェクトの配列として取得する方法

Rubyの小ネタです。

お題

2020年4月1日から2021年3月1日まで、1年分の「xxxx年xx月1日」のDateオブジェクトを配列として取得するコードを書いてください。

イメージとしてはこんな感じです。

# 見やすいように文字列の配列にしていますが、本当はDateオブジェクトの配列を取得するのがゴールです
[
  "2020-04-01",
  "2020-05-01",
  "2020-06-01",
  "2020-07-01",
  "2020-08-01",
  "2020-09-01",
  "2020-10-01",
  "2020-11-01",
  "2020-12-01",
  "2021-01-01",
  "2021-02-01",
  "2021-03-01"
]

解答例

こんな感じで書けます。

require 'date'
start_date = Date.parse '2020/04/01'
end_date   = Date.parse '2021/03/01'
(start_date..end_date).select{|d| d.day == 1}
#=> [#<Date: 2020-04-01 ((2458941j,0s,0n),+0s,2299161j)>, #<Date: 2020-05-01 ((2458971j,0s,0n),+0s,2299161j)>, (中略), #<Date: 2021-03-01 ((2459275j,0s,0n),+0s,2299161j)>]

RailsであればDate.parseの代わりにto_dateが使えます。

# Railsの場合
start_date = '2020/04/01'.to_date
end_date   = '2021/03/01'.to_date
(start_date..end_date).select{|d| d.day == 1}
#=> [Wed, 01 Apr 2020, Fri, 01 May 2020, (中略), Mon, 01 Mar 2021]

むりやり1行で書くとこんな感じ。(可読性がイマイチなのであまりお勧めしませんが)

# Railsの場合
Range.new(*%w[2020/04/01 2021/03/01].map(&:to_date)).select{|d| d.day == 1}
#=> [Wed, 01 Apr 2020, Fri, 01 May 2020, (中略), Mon, 01 Mar 2021]

いったん335日分のDateオブジェクトの配列を作ってから、毎月1日のDateオブジェクトだけをselectするので若干処理効率が悪いところはありますが、何十年、何百年という期間を対象にしないのであれば、たぶん大きな問題にはならないんじゃないかなー、と思っています。

以上、Rubyの小ネタでした!

おまけ

Railsのnext_monthメソッドとRuby 2.7で導入されたEnumerator.produceを使って、無駄なDateオブジェクトを作らない処理を考えてみました。これもなかなか良さそうです。

# Rails + Ruby 2.7
start_date = '2020/04/01'.to_date
end_date   = '2021/03/01'.to_date
Enumerator.produce(start_date, &:next_month).take_while{|d| d <= end_date}
#=> [Wed, 01 Apr 2020, Fri, 01 May 2020, (中略), Mon, 01 Mar 2021]

素のRubyでも>> 1を使えば1ヶ月後のDateオブジェクトが取得できるので、Ruby 2.7単体でこういう書き方もできます。

# Ruby 2.7
require 'date'
start_date = Date.parse '2020/04/01'
end_date   = Date.parse '2021/03/01'
Enumerator.produce(start_date){|d| d >> 1}.take_while{|d| d <= end_date}
#=> [#<Date: 2020-04-01 ((2458941j,0s,0n),+0s,2299161j)>, #<Date: 2020-05-01 ((2458971j,0s,0n),+0s,2299161j)>, (中略), #<Date: 2021-03-01 ((2459275j,0s,0n),+0s,2299161j)>]
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

作業環境をcloud9からVScodeに変更した

Ruby on railsでアプリを作成し、ec2環境までのデプロイが完了した。
ここまでの作業環境としてAWSのcloud9を利用してきた。
作品のレベルを上げるためにdockerの導入を検討し、それならば、作業環境をcloud9から卒業しVScodeに移行しようと考えた。

docker.fileとdocker-compose.ymlを作成し、無事にdocker環境下でもアプリの動作が確認できた。

git hubでpushし、cloud9にgit pullでファイルを同期させたところ、cloud9環境下でエラーが発生した。

原因はdocker導入にあたり以下の変更を加えたことである。

database.yml
default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: <%= ENV.fetch("MYSQL_PASSWORD", "password") %>
  # host: localhost 変更前
  host: db # 変更後

hostをdbに変更したことにより起きたエラーだった。

vscode環境でも動作が確認できているので、cloud9は捨てるか、こちらにもdockerをインストールするかだが、
cloud9はの環境はブラックボックス的な部分があり、知識が不足しているため安易な変更は加えたくない。。。

ひとまず今回の目的である、作業環境をvscodeに変更し、dockerを導入することは完了したのでOKとした。

cloud9上でdockerを導入している人がいたら教えていただけたら幸いです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Railsで開発中にLocalのMySQLのバージョンを8系から5.7に変更したらいろいろハマった

現在Railsでポートフォリオ作成中のたか(@ktkr7195)です。

Sequel Proを使ってDBの情報を参照しようとしたら、MySQL8系だと繋がらない問題に打ち当たり、バージョンを5.7にすれば治るらしいという記事を拝見し、変更したら事件が起きました。

環境

  • Rails 5.2.4
  • macOS 10.15.5
  • MySQL 5.7
  • ruby 2.5.1

状況

まずHomebrewでbrew install mysqlでMySQLをインストールしてローカルで開発をしていました。おそらく、バージョン指定しないと最新の8系がインストールされます。rails db:createrails db:migrate等無事に成功し、アプリケーションが表示されるようになりました。開発を進めていく中でDBを参照することが多くなったのでSequel Proを使おとしたら弾かれてしまいこちらの記事を参考に修正したらrails db:migrateができなくなったのでMySQLのバージョンを落とすことに。

手順

①Mac MySQLをきれいにする
まずはこちらの記事を参考にMySQLをきれいにして、インストールし直す。この際自分はこちらを見て5.7をインストールしました。

②bundle doctorで原因を調べる
こちらの記事を参考に。

感想

自分の場合は上の手順で解決しましたが、ここまで来るのに結構時間を使ってしまったので、同じような境遇の人がいたら参考になれば嬉しいです。

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Railsのcredentials.yml.encとmaster.keyについて

Railsの秘匿情報管理用のファイルについて

credentials.yml.enc

・アプリケーション内で使うキー情報を書いておく
・内容は暗号化されている状態

中身を見る/編集するにはターミナルでエディタを指定して開く必要がある。
EDITOR=“vi” bin/rails credentials:edit

master.key

・credentials.yml.encの暗号化復号化に使う鍵(文字列)。
・バージョン管理に含まれていない(デフォルトで.gitignoreに指定されている)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む