- 우분투 16.04.1 LTS
- 레일 5.0.0
- 루비 2.3.1p112 (2016년 4월 26일) x86_64에-리눅스 GNU]
- 보석 'mysql2', '~> 0.3.18': 플랫폼 => : 루비
- 보석 '생각 - 스핑크스', '~> 3.2.0'
- 의 PostgreSQL 9.5.3
I 스핑크스 검색 엔진 설정 네 레일 5 프로젝트에서 그리고 그것은 레일 belongs_to
내장 검증을 부러 뜨. 예 : 후 지금생각-spinx 휴식이 내장 belongs_to 검증
1 error prohibited this post from being saved:
User must exist
:
class Post < ApplicationRecord
belongs_to :user
end
class Article < ApplicationRecord
belongs_to :user
end
class User < ApplicationRecord
has_many :posts
has_many :articles
end
앞서 나는 새로운 Post
을 생성하고 Post
의 new
형태 (부모 같이) User
를 설정하지 않은 경우, 레일은 유효성 검사 오류를 해고 Shpinx를 추가하면이 유효성 검사가 더 이상 발생하지 않습니다 (Post
생성시). 새 Post
이 빈 user_id
필드와 함께 자동으로 만들어집니다.
Article
모델에도 동일한 문제가 발생합니다. 이는 belongs_to
연관이있는 모델에서 발생합니다.
이 문제를 해결하는 방법은 무엇입니까? 물론 포스트와 기사 모델 모두에 validates :user, presence: true
을 추가 할 수는 있지만 이러한 서투른 솔루션은 마음에 들지 않습니다.
참고 : 줄을 내 Gemfile
에 주석 처리하면 설명 된 문제가 사라집니다.