2016-08-11 3 views
0
  • 우분투 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을 생성하고 Postnew 형태 (부모 같이) User를 설정하지 않은 경우, 레일은 유효성 검사 오류를 해고 Shpinx를 추가하면이 유효성 검사가 더 이상 발생하지 않습니다 (Post 생성시). 새 Post이 빈 user_id 필드와 함께 자동으로 만들어집니다.

Article 모델에도 동일한 문제가 발생합니다. 이는 belongs_to 연관이있는 모델에서 발생합니다.

이 문제를 해결하는 방법은 무엇입니까? 물론 포스트와 기사 모델 모두에 validates :user, presence: true을 추가 할 수는 있지만 이러한 서투른 솔루션은 마음에 들지 않습니다.

참고 : 줄을 내 Gemfile에 주석 처리하면 설명 된 문제가 사라집니다.

답변

1

이것은 실제로 생각 스핑크스 버그였습니다. 나는 just fixed입니다.

gem 'thinking-sphinx', '~> 3.2.0', 
    :git => 'git://github.com/pat/thinking-sphinx.git', 
    :branch => 'develop', 
    :ref => '3138fea725' 
:

당신은 당신의 Gemfile에이 코드를함으로써 최신을 사용할 수 있습니다