2016-08-09 5 views
10

레일 5.0.0을 사용하지만 어떤 이유로 belongs_to_required_by_default이 작동하지 않습니다!레일 5 belongs_to_required_by_default는 작동하지 않습니다

응용 프로그램이 5 응용 프로그램의 새로운 레일로 만든

class Visit < ApplicationRecord 
    belongs_to :user 
end 

> v = Visit.new 
> v.valid? # => true 

optional: false 옵션과 함께 작동

class Visit < ApplicationRecord 
    belongs_to :user, optional: false 
end 

> v = Visit.new 
> v.valid? # => false 

하지만 구성이 작동하지 않는 이유 : 어떤을위한

Rails.application.config.active_record.belongs_to_required_by_default = true 

감사합니다 제안 사항

답변

9

어디에두고 있습니까? development.rb에 안에 config.active_record.belongs_to_required_by_default = true으로 입력하여 작동하는지 확인했습니다. 당신이 모든 것을 원하는 경우

당신은 내가 당신이로드 순서에 문제가있는 것 초기화 디렉토리에 넣어 찾을 생각 config.active_record.belongs_to_required_by_default = true

로 클래스 Application < Rails::Application에서 application.rb에 넣을 수 있습니다.

+0

기본값으로'my_app/config/initializers/new_framework_defaults.rb' –

+1

을'class Application Ropeney

+0

네 답처럼 잘 작동하지만 이해가 안되는데 왜 이니셜 라이저 폴더에서 초기화되지 않는 걸까요? –

7

RAILS 5.1 용 편집 : 모든 것이 기본 Rails 5.1 응용 프로그램에서 잘 작동합니다. 귀하의 application.rb (reference)에 config.load_defaults 5.1이 있는지 확인하십시오. 그것은 다음과 같이 레일의 5.0.x는

에 대한

OLD 답이 레일 문제 https://github.com/rails/rails/issues/23589에 따라, 그 원숭이 패치 액티브 잘못 약간의 보석 때문이다.

범인을 찾을 때까지 Gemfile에서 주석 처리/주석 처리를 원할 수 있습니다.

이 지루한 과정 후, 나는 내 최신 프로젝트는 (글을 쓰는 시점에서) 문제를 일으킨 보석 ahoy_matey, cancancandelayed_job_active_record 것을 발견했다. 한편 Ropeney의 응답 작품에서

는 적합하지 않지만 "공식 레일 방법은"하지 application.rb에서 new_framework_default‌​s.rb 초기화에 config.active_record.belongs_to_required_by_default = true를 선언하기 때문이다.

4

누구든지이 문제가 계속되는 경우 레일즈 5.1로 업그레이드하여 문제를 해결할 수 있습니다. Rails 5.1에서 config/initializers/new_framework_defaults.rb이 제거되어 config.load_defaults 5.1application.rb으로 바뀌 었습니다. 이 줄에는 active_record.belongs_to_required_by_default = true이 포함되고 다른 옵션은 new_framework_defaults.rb입니다.

module myApp 
class Application < Rails::Application 
# Initialize configuration defaults for originally generated Rails 
version. 
    config.load_defaults 5.1 

은 자세한 내용은이 스레드의 끝을 참조하십시오 https://github.com/rails/rails/issues/23589.

관련 문제