首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >思考-spinx破坏了belongs_to内置的验证

思考-spinx破坏了belongs_to内置的验证
EN

Stack Overflow用户
提问于 2016-08-11 07:58:44
回答 1查看 49关注 0票数 0
  • Ubuntu 16.04.1 LTS
  • Rails 5.0.0
  • ruby 2.3.1p112 (2016-04-26) x86_64-linux-gnu
  • gem‘mysql2 2’,'~> 0.3.18',:platform => :ruby
  • gem 'thinking-sphinx','~> 3.2.0‘
  • PostgreSQL 9.5.3

我在Rails 5项目中设置了狮身人面像搜索引擎,它破坏了Rails belongs_to内置验证。示例:

代码语言:javascript
复制
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触发了验证错误:

代码语言:javascript
复制
1 error prohibited this post from being saved:
User must exist

现在,在添加Shpinx之后,这个验证就不再发生了(在Post创建时)。使用空的Post字段静默地创建一个新的user_id

同样的问题现在也发生在Article模型上--它发生在任何具有belongs_to关联的模型上。

如何解决这个问题?当然,我可以简单地将validates :user, presence: true添加到Post和文章模型中--但我不喜欢这样笨拙的解决方案。

注意:如果我在我的gem 'thinking-sphinx', '~> 3.2.0'中注释掉了Gemfile行,那么所描述的问题就会消失。

EN

回答 1

Stack Overflow用户

发布于 2016-08-17 03:59:41

这确实是一个思考的狮身人面像虫,我有刚修好

您可以通过在Gemfile中使用以下代码来使用最新的代码:

代码语言:javascript
复制
gem 'thinking-sphinx', '~> 3.2.0',
  :git    => 'git://github.com/pat/thinking-sphinx.git',
  :branch => 'develop',
  :ref    => '3138fea725'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38890554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档