복붙노트

[RUBY-ON-RAILS] 액티브 :: 자료에 대한 정의되지 않은 방법 raise_in_transactional_callbacks = ': 클래스 (NoMethodError)

RUBY-ON-RAILS

액티브 :: 자료에 대한 정의되지 않은 방법 raise_in_transactional_callbacks = ': 클래스 (NoMethodError)

이 질문을 쓰기 전에 나는이 답변에서 보았지만 해결책을 찾을 수 없습니다 :

오류 실행 레일은 비계 사용자 이름을 생성합니다 문자열 이메일 : 문자열을

레이크 중단! 액티브 :: 자료에 대한 정의되지 않은 메서드`migration_error = '를 : 클래스

정의되지 않은 메서드 '구성': 오류 발사는 서버를 레일

나는 새로운 응용 프로그램을 시작하려고 할 때 (있는 Hartl의 튜토리얼, 제 2 장), 무대 발판을 시작할 때, 나는 오류를 같이 가지고 :

**undefined method `configure' for #<SampleApp2::Application:0x00000101a74610> (NoMethodError)**

그러나 위의 예 덕분에, 나는 development.rb 파일을 편집 :

DemoApp::Application.configure do

(나는 그 이름을 변형 그래서 예, 내 응용 프로그램은 demo_app이라고합니다).

그 후, 나는 다시 발판을 실행하려고하지만, 새로운 오류가 발생했습니다 :

**method_missing': undefined method raise_in_transactional_callbacks=' for ActiveRecord::Base:Class (NoMethodError)**

비슷한 경우에 대한 응답으로 마이그레이션 방법을 나타냅니다 -이 파일 development.rb에서 제거되어야한다. 마찬가지로,이 파일 raise_in_transactional_callbacks 방법에서 찾을려고했는데, 거기 아니에요! 또한, 나는 cmd를 생산하는 전체 코드가 매우 큰 것을 말할 것입니다 :

C:\Sites\demo_app>rails generate scaffold User name:string email:string
invoke  active_record
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/active_record/dynamic_matchers.rb:22:in `method_missing': undefined method `raise_in_transactional_callbacks=' for ActiveRecord::Base:Class (NoMethodError)
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/active_record/railtie.rb:166:in `block (3 levels) in <class:Railtie>'
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/active_record/railtie.rb:165:in `each'
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/active_record/railtie.rb:165:in `block (2 levels) in <class:Railtie>'
…
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-4.0.2/lib/rails/commands.rb:48:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'

어디 ... (생략)이 - 특별히 유사한 코드를 잘라. 그게 다야. 나는 어떤 도움을 감사하게 될 것입니다!

해결법

  1. ==============================

    1.귀하의 설정 / application.rb는 다음과 같은 라인을 가지고 :

    귀하의 설정 / application.rb는 다음과 같은 라인을 가지고 :

    config.active_record.raise_in_transactional_callbacks = TRUE

    이 레일의 버전에 유효한 구성 값이 아닙니다. 당신은 그것을 삭제하거나 계속을 주석 처리해야합니다.

    참고 :이 오류 그것은 불완전한 레일 버전 변화를 나타내는입니다 진행 하나. 당신이 튜토리얼의 초기 단계에있는 경우, 당신은 심각 매우 시작에서 레일의 원하는 버전을 사용하여 응용 프로그램을 다시 시작하는 것이 좋습니다. 이것은 당신이 기술에 더 익숙해 질 때까지 당신이 이러한 유형의 오류를 방지하는 데 도움이됩니다.

  2. ==============================

    2.레일 5.1.0.beta1에 레일 5.0.1에서 응용 프로그램을 업그레이드 할 때 저도 같은 문제를 가지고 있었다.

    레일 5.1.0.beta1에 레일 5.0.1에서 응용 프로그램을 업그레이드 할 때 저도 같은 문제를 가지고 있었다.

    서버 (레일들)을 시작할 때, 나는 다음과 같은 오류 메시지를 받았습니다 :

    /home/user01/.rvm/gems/ruby-2.4.0@global/gems/activerecord-5.1.0.beta1/lib/active_record/dynamic_matchers.rb:22:in `method_missing': undefined method `raise_in_transactional_callbacks=' for ActiveRecord::Base:Class (NoMethodError)
    

    같은 악, 같은 치료.

    다음 줄을 주석에 설정 / application.rb 문제를 해결 ...

    config.active_record.raise_in_transactional_callbacks = true
    

    일부 조사 후, 나는,이 라인은 레일 4.2.1에서 기본 것을 발견 레일 5.0.0에서 사라, 지금은 레일 5.1.0.beta1에서 오류가 발생합니다 ...

  3. ==============================

    3.당신은 설정 / application.rb에서 진정한 config.active_record.raise_in_transactional_callbacks을 = 표시되지 않으면 그것은 당신의 환경 CONFIGS에있을 수 있습니다. 내 응용 프로그램의 경우는 설정 / 환경 / development.rb 및 설정 / 환경 / test.rb에서 설정되고 있었다

    당신은 설정 / application.rb에서 진정한 config.active_record.raise_in_transactional_callbacks을 = 표시되지 않으면 그것은 당신의 환경 CONFIGS에있을 수 있습니다. 내 응용 프로그램의 경우는 설정 / 환경 / development.rb 및 설정 / 환경 / test.rb에서 설정되고 있었다

  4. from https://stackoverflow.com/questions/28006358/undefined-method-raise-in-transactional-callbacks-for-activerecordbaseclass by cc-by-sa and MIT license