Tag: 过滤

Rails包括与左连接中的条件的关联

我可以为Rails为includes方法生成的LEFT JOIN sql添加一些条件吗? (Rails 4.2.1,postresql)。 我需要通过预加载来获取所有(!)用户(当我将放置评论,post等的视图计数时不是N + 1),但是关联需要通过某些条件进行过滤。 例: User.includes(:comments) # => SELECT * FROM users LEFT JOIN comments ON … 这将返回所有用户并预加载评论(如果存在)。 如果我在where添加“comments”关联的一些条件,那么SQL不会返回所有用户,例如: User.includes(:comments).where(comments: {published_at: Date.today}) # => SELECT * FROM users LEFT JOIN comments ON … WHERE comments.published_at = … 这将仅返回今天发布的有评论的用户。 我需要在LEFT JOIN放置条件并保存预加载 (将对象加载到内存中 – 使用joins方法的简单左连接不会预加载关联)。 SELECT * FROM users LEFT JOIN comments ON […]

将字符串解析为复杂布尔值的递归逻辑?

我确信之前已经完成了,我找不到它。 我需要将“((A OR B)和C)或D”之类的内容转换为属性的数据库查询。 具体来说,我正在使用Ruby Sequel。 任何人都可以指出我的例子或实用程序或某些东西会阻止我重新发明轮子吗?

我可以在rspec中使用多个排除filter吗?

在_spec.rb文件中,我正在设置一个排除filter,如: RSpec.configure do |config| # we need determine this once at the very front # and the result be available in the instance server_success = server1_available? config.exclusion_filter = { :svr1 => lambda {|what| case what when :available !server_success end } } end 然后在我做的文件中 describe :get_items_by_client, :svr1 => :available do 如果服务器不可用,则阻止测试执行。 如果我单独运行spec文件,这一切都正常。 但是,我在控制访问不同服务器的测试的另一个文件中有类似的代码,当我运行它们时,我只看到每个服务器检查完成(我有一个放入“serverX_available?”代码),但只有正在排除一组测试(即使两个服务器都不可用)。 我开始认为你只能有一个排除filter,但我可以找到任何与之相关的文档。 这是可行的每个文件? 我可以在支持文件中使用单个复杂的filter,但是当我只运行单个spec文件时,如何将其合并? […]