- の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
を作成し、Post
のnew
形で(親として)User
を設定しなかったとき、Railsは検証エラーを解雇しましたShpinxを追加すると、この検証はもう行われません(Post
作成時)。空のuser_id
フィールドを含む新しいPost
が自動的に作成されます。
Article
モデルにも同様の問題が発生します。belongs_to
が関連付けられているモデルで発生します。
この問題を解決するにはどうすればよいですか?もちろん、投稿と記事のモデルにはどちらもvalidates :user, presence: true
を追加することができますが、私はそのような不潔なソリューションが気に入らないのです。
注:行を私のGemfile
にコメントアウトすると、上記の問題は解消されます。