2016-08-11 7 views
0
  • のUbuntu 16.04.1 LTS
  • のRails 5.0.0
  • ルビー2.3.1p112(2016年4月26日)[x86_64の-のlinux-gnuの]
  • 宝石 'mysql2'、 '〜> 0.3.18'、:プラットフォーム=>:ルビー
  • 宝石の思考 - スフィンクス '、 '〜> 3.2.0'
  • のPostgreSQL 9.5.3

Iスフィンクスの検索エンジンを設定する私のRails 5プロジェクトでは、それはRails 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を設定しなかったとき、Railsは検証エラーを解雇しましたShpinxを追加すると、この検証はもう行われません(Post作成時)。空のuser_idフィールドを含む新しいPostが自動的に作成されます。

Articleモデルにも同様の問題が発生します。belongs_toが関連付けられているモデルで発生します。

この問題を解決するにはどうすればよいですか?もちろん、投稿と記事のモデルにはどちらもvalidates :user, presence: trueを追加することができますが、私はそのような不潔なソリューションが気に入らないのです。

注:行を私のGemfileにコメントアウトすると、上記の問題は解消されます。

答えて

1

これは確かに私がjust fixedを持っているThinking Sphinxバグでした。

あなたのGemfileにこのコードを持っていることによって、最新のを使用することができます。

gem 'thinking-sphinx', '~> 3.2.0', 
    :git => 'git://github.com/pat/thinking-sphinx.git', 
    :branch => 'develop', 
    :ref => '3138fea725' 
関連する問題