首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails sqlite字符串相等不起作用

Rails sqlite字符串相等不起作用
EN

Stack Overflow用户
提问于 2011-09-11 20:09:33
回答 1查看 203关注 0票数 1

为什么这个查询不能创建一个正确的结果?

代码语言:javascript
复制
ree-1.8.7-2011.03 :037 > Caption.joins(:flags)
 => [#<Caption id: 3, text: "another another caption", point: 1, up: 1, down: 0, submission_id: 1, user_id: 1, created_at: "2011-09-11 10:19:38", updated_at: "2011-09-11 12:04:03", flags_count: 1, status: nil>] 

ree-1.8.7-2011.03 :035 > Caption.joins(:flags).where('status != "safe"')
 => [] 

ree-1.8.7-2011.03 :036 > Caption.joins(:flags).where('status != "safe"').to_sql
 => "SELECT \"captions\".* FROM \"captions\" INNER JOIN \"flags\" ON \"flags\".\"caption_id\" = \"captions\".\"id\" WHERE (status != \"safe\")" 

ree-1.8.7-2011.03 :038 > Caption.joins(:flags).where('status <> "safe"')
 => [] 

ree-1.8.7-2011.03 :039 > Caption.joins(:flags).where('status <> "safe"').to_sql
 => "SELECT \"captions\".* FROM \"captions\" INNER JOIN \"flags\" ON \"flags\".\"caption_id\" = \"captions\".\"id\" WHERE (status <> \"safe\")" 

ree-1.8.7-2011.03 :040 >

我使用的是rails 3.0.9和ree-1.8.7

这是我的模型

代码语言:javascript
复制
class Caption < ActiveRecord::Base
  belongs_to :submission
  belongs_to :user
  has_many :votes
  has_many :flags

  validates_presence_of :submission_id
  validates_presence_of :user_id
  validates_inclusion_of :status, :in => ['safe', nil]
end


class Flag < ActiveRecord::Base
  belongs_to :caption, :counter_cache => true
  belongs_to :user
end

我也试过了

代码语言:javascript
复制
ree-1.8.7-2011.03 :002 > Caption.joins(:flags).where("captions.status != ?", "safe")
 => [] 

ree-1.8.7-2011.03 :003 > Caption.joins(:flags).where("captions.status != ?", "safe").to_sql
 => "SELECT \"captions\".* FROM \"captions\" INNER JOIN \"flags\" ON \"flags\".\"caption_id\" = \"captions\".\"id\" WHERE (captions.status != 'safe')"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-11 20:42:20

代码语言:javascript
复制
Caption.joins(:flags).where("captions.status != ?", "safe")

代码语言:javascript
复制
Caption.joins(:flags).where("captions.status != ? OR captions.status IS NULL", "safe")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7378076

复制
相关文章

相似问题

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