rails 4.2.8からrails 5.0.1にupgradeしたら特定のactionから取得したDataのカラムがnilになる
rails 4.2.8からrails 5.0.1にupgradeしたら以下のような事象が発生しました。
※ 前提条件として、Userは事前に試験申し込みに必要な最低限の情報は登録している。
Userが試験を申し込み ExaminationEntriesController の create actionが走る時、Profile model の validates :birthed_at, presence: trueに引っかかります。
new action -> new view -> confirm action -> confirm view -> create action
と遷移していく中で、それぞれのactionにbinding.pryを挟み current_user.profile.birted_at で生年月日情報を取得したら
以下のような結果になりました。(コード内にコメントアウトで記述)
なぜ、create actionからprofileを呼び出した時のみbithed_atが nil になるのか原因がわからず困っています。
なにか、デバッグのアドバイスを頂けないでしょうか。
gemのどれかのversionが上がったことが起因して起きているエラーかと推測しています。
よろしくおねがいします。
なお、create actionで binding.pry 以前にprofileをsave updateする記述はありません。
ExaminationEntriesController
class ExaminationEntriesController < ApplicationController
before_action :require_not_qualified!
before_action :set_examination_entry, only: %i(new confirm create)
before_action :set_attributes_with_params, only: %i(confirm create)
before_action :load_examination_entry, only: %i(edit update)
def new
binding.pry
### current_user.profile.birthed_at > Mon, 06 Jun 1966
end
def confirm
ee = @examination_entry
context = "#{ee.entry_type}_entry".to_sym
render(:new) && return unless ee.valid? && ee.profile.valid?(context)
binding.pry
### current_user.profile.birthed_at > Mon, 06 Jun 1966
end
def create
ee = @examination_entry
context = "#{ee.entry_type}_entry".to_sym
binding.pry
if params[:back] || !ee.save || !ee.profile.save(context: context)
render(:new) && return
end
ExaminationEntryMailer.created(ee).deliver_now!
### current_user.profile.birthed_at > nil
### User.find(16).profile .birthed_at > Mon, 06 Jun 1966
end
...略
Gemfile
source 'https://rubygems.org'
+ruby "2.7.4"
-ruby "2.5.3"
+gem 'rails', '5.0.1'
-gem 'rails', '4.2.8'
gem 'clockwork'
+gem 'coffee-rails'
-gem 'coffee-rails', '~> 4.1.0'
gem 'date_select_separator'
gem 'default_value_for'
gem 'devise'
gem 'devise-i18n'
gem 'enumerize'
gem 'haml-rails'
gem 'hamlit'
+gem 'jbuilder'
-gem 'jbuilder', '~> 2.0'
gem 'jquery-rails'
gem 'pg', '~> 0.18.2'
+gem 'config'
+gem 'rails_script', '~> 0.6.1'
-gem 'config', github: 'railsconfig/config'
-gem 'rails_script', '~> 0.6.1'
gem 'restforce'
gem 'salesforce_bulk_api'
+gem 'sass-rails'
+gem 'sdoc'
+gem 'turbolinks', '~> 2.5.3'
+gem 'uglifier'
-gem 'sass-rails', '~> 6'
-gem 'sdoc', '~> 0.4.0', group: :doc
-gem 'turbolinks', '~> 2.5.3'
-gem 'uglifier', '>= 1.3.0'
gem 'valid_email'
gem 'rinku'
gem 'metamagic'
group :development, :test do
gem 'pry'
gem 'pry-byebug'
gem 'pry-rails'
- gem 'quiet_assets'
gem 'rspec'
gem 'rspec-rails'
gem 'spring'
group :development, :test do
gem 'thin'
gem 'turnip'
gem 'dotenv-rails'
+ gem 'rails-controller-testing'
end
group :development do
gem 'letter_opener'
+ gem 'letter_opener_web'
+ gem 'web-console'
- gem 'letter_opener_web', '~> 1.2.0'
- gem 'web-console', '~> 2.0'
gem 'better_errors'
gem 'binding_of_caller'
+ gem "rails5-spec-converter"
end
0