Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bunble exec rake db:seed でエラー #1

Open
1 task
atarubift opened this issue Sep 8, 2021 · 12 comments
Open
1 task

bunble exec rake db:seed でエラー #1

atarubift opened this issue Sep 8, 2021 · 12 comments

Comments

@atarubift
Copy link

atarubift commented Sep 8, 2021

概要

下記のようなエラーが発生する
TypeError: no implicit conversion of nil into String
error内で示されているpathは以下の通り

hr-dash/app/models/concerns/encryptor.rb

encryotor.rb 内には環境変数を代入する変数があるため、.envに環境変数を設定する必要がありそう。

再現・確認手順(任意)

ToDo

  • .envに環境変数を設定する
@atarubift
Copy link
Author

ENCRYPTOR_CIPHERには暗号方式が入ると考えられるため、試しに"aes-256-cbc"を設定した。
すると、エラーの内容が以下のようになった。
OpenSSL::Cipher::CipherError: salt must be an 8-octet string

@atarubift
Copy link
Author

任意の暗号変換方式、8byteのソルト文字列、任意のパスワードを環境変数に設定したら、以下のようにエラー内容が変わった。

NoMethodError: undefined method `will_save_change_to_email?' for #<User id: nil, name: "Mrs. Vince Stehr", employee_code: "12196711380", encrypted_email: [FILTERED], entry_date: "2020-02-05", beginner_flg: false, deleted_at: nil, created_at: nil, updated_at: nil, gender: "male">
Did you mean?  will_save_change_to_name?
               will_save_change_to_id?
               will_save_change_to_gender?

メソッドエラー、、、

@atarubift
Copy link
Author

どうやらemail columnがなかったようなので、作成してmigration。
すると以下に。
ActiveRecord::RecordInvalid: Validation failed: Email can't be blank, Email is invalid

@atarubift
Copy link
Author

正規表現に引っかかっているのかなと思い記述箇所を探す。
app/models/group.rb内にそれっぽいコードを発見

  validates :email, presence: true, format: { with: /\A[^@]+@[^@]+\z/ }

@の前後に文字列があれば通るはず・・・?

@atarubift
Copy link
Author

#2 でもらった環境変数を設定したところ、
今度はMonthly reportでemailと同じエラーが発生した
ActiveRecord::RecordInvalid: Validation failed: Monthly report tags is invalid, Monthly report tags is invalid

@atarubift
Copy link
Author

よく見たら少し違うな、、、

@atarubift
Copy link
Author

【Rails6】ActiveRecord::RecordInvalid: Validation failed:の対処法
を参考にbelongs_toを確認 -> 複数形のなっている箇所は見られなかった。

【Rails 5】ActiveRecord::RecordInvalid: Validation failed: Hoge must exist
を参考に該当するbelongs_toにoptional: trueを追記 -> 変化なし

@atarubift
Copy link
Author

atarubift commented Sep 13, 2021

rspecのテストより

       Failure/Error: it { is_expected.to be_valid }
         expected #<MonthlyReport id: nil, user_id: nil, target_month: "2021-03-01", shipped_at: "2021-09-13 05:14:31.991146700 +0000", project_summary: "Aut fugit molestias. Molestiae incidunt corrupti. ...", business_content: "Molestiae temporibus nam. Impedit est magni. Deser...", looking_back: "Temporibus ducimus iure. Ipsam qui aliquid. Except...", next_month_goals: "Sequi qui voluptatem. Minus ducimus amet. Quo non ...", created_at: nil, updated_at: nil, comments_count: 0, likes_count: 0> to be valid, but got errors: Monthly report tags is invalid, Monthly report tags is invalid

reportタグ以外のmonthlyReportは問題なく作成されているっぽい。

@atarubift
Copy link
Author

monthly_report_tag.rbの19行目をコメントアウトすることでseedを通すことはできた。

@atarubift
Copy link
Author

エラーの

6.2.0/lib/factory_bot/strategy_syntax_method_registrar.rb:28:in `block in define_singular_strategy_method'
/home/ataruby/workspace/intern/hr-dash/db/seeds.rb:28:in `block in <top (required)>'

より、seed.rbの28行目
5.times { FactoryBot.create(:monthly_report, :shipped, :with_tags, :with_comments, :with_likes) }

に原因がありそう

@atarubift
Copy link
Author

atarubift commented Sep 16, 2021

  • 28行目をコメントアウトした場合
    -> seedが通った。この時、monthly_report_tag.rbの19行目のコメントアウトはしていない。
  • createの引数を:monthly_reportのみにした場合
    -> seedが通った。この時、monthly_report_tag.rbの19行目のコメントアウトはしていない。
  • createの引数を:monthly_report, :shippedにした場合
    -> 失敗:ActiveRecord::RecordInvalid: Validation failed: Monthly report tags can't be blank
  • createの引数を:monthly_report, :shipped, :with_tagsにした場合
    -> ActiveRecord::RecordInvalid: Validation failed: Monthly report tags is invalid, Monthly report tags is invalid
  • createの引数を:monthly_report, :with_comments, :with_likes)にした場合
    -> 通る

@atarubift
Copy link
Author

上記から:shipped, :with_tagsに何が問題がありそう

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant