小编mu *_*ort的帖子

Rails OR查询与postgres数组

我使用postgres的数组数据类型在rails中有一个标记系统.我正在尝试写一个scope会返回任何包含标签的帖子.到目前为止,我有这个范围工作:

scope :with_tag, ->(tag) { where("tags @> ARRAY[?]", tag) }
Run Code Online (Sandbox Code Playgroud)

我想扩展这个范围,以便我可以同时查询多个标签,理想情况如下:

Post.with_tags(['some', 'tags', 'to', 'query'])
Run Code Online (Sandbox Code Playgroud)

哪个会返回任何Post有这些标签的人.我已经考虑过创建一个类方法来处理输入数组的迭代:

def self.with_tags(args)
  # start with empty activerecord relation
  # want to output AR relation
  results = Post.none
  args.each do |tag|
    results = results.concat(Post.with_tag(tag))
  end
  results.flatten
end
Run Code Online (Sandbox Code Playgroud)

但这种方法对我来说很有趣,因为它为每个参数创建了一个新的查询.它也不会返回一个ActiveRecord :: Relation,因为flatten我真的希望将它作为输出.

我可以在OR查询范围内完成我所追求的内容吗?

arrays postgresql ruby-on-rails

1
推荐指数
1
解决办法
1220
查看次数

n对括号的所有有效组合

  • 我正在学习js。
    • 我正在尝试编写一个简单的js程序。
    • 我想做的是打印n对括号的所有有效组合(正确打开和关闭)
    • 例如(),(()()),(())
    • 我写了逻辑,你能告诉我它是否正确

https://jsfiddle.net/e7mcp6xb/

module.exports = Parentheses = (function() {
  var _isParenthesesMatch = function(str) {
    var parentheses = str.length;
    var rightParentheses = '(';
    var leftParentheses = ')';
    var rightCount = 0;
    var leftCount = 0;

    for(i=0;i<=str.length;i++){
       if(rightParentheses == str.charAt(i))
       {
          rightCount++;
       }
       else if(leftParentheses == str.charAt(i))
       {
          leftCount++;
       }
    }

    if(rightCount == leftCount){
      return true;
    }
    else(rightCount != leftCount){
      return false;
    }

  }

}());
Run Code Online (Sandbox Code Playgroud)

javascript

1
推荐指数
1
解决办法
1105
查看次数

正则表达式中的Ruby拆分管道

我已将文件中的数据放入数组中,然后我只是保留了我想要的数据,如下所示:

基本上我想要的是独立访问每一列.由于文件将不断变化,我不想要硬编码的东西,我本来已经做到了:).

Element0: | data | address | type | source | disable |

Element1: | 0x000001 | 0x123456 | in | D | yes |

Element2: | 0x0d0f00 | 0xffffff | out | M | yes |

Element3: | 0xe00ab4 | 0xaefbd1 | in | E | no |

我尝试使用正则表达式/\|\s+.*\s+\|/只打印几行(它删除了我关心的数据).我也试过,/\|.*\|/它打印所有空.我用Google搜索了分割方法,我知道发生这种情况是因为.*删除了我关心的数据.我也试过了正则表达式,\|\s*\|但它打印整行.我尝试了许多正则表达式,但此刻我想不出解决这个问题的方法.有什么建议?

`line_ary = ary_element.split(/\|\s.*\|/)
    unless  line_ary.nil?  puts line_ary`
Run Code Online (Sandbox Code Playgroud)

ruby regex

1
推荐指数
1
解决办法
366
查看次数

Ruby on Rails:更简单的 Hash.slice 方法?

http://api.rubyonrails.org/classes/Hash.html#method-i-slice 中,我看到

valid_keys = [:mass, :velocity, :time]
search(options.slice(*valid_keys))
Run Code Online (Sandbox Code Playgroud)

我不明白这里的用法。我的意思是,如果我传入一个arrayinto slice,我肯定希望每个都key被切片,那为什么要*在这里使用附加项呢?

是否可以将其变成类似的东西:

valid_keys = [:mass, :velocity, :time]
search(options.simple_slice(valid_keys))
Run Code Online (Sandbox Code Playgroud)

通过创建更简单的slice?

ruby hash ruby-on-rails

1
推荐指数
1
解决办法
2231
查看次数

Rspec没有捕捉到有目的的失败

我试图检查我的一个类方法是否响应无效输入有异常,但Rspec没有它.

我的班级文件:

class WhateverClass
  def run(options)
    if options['input'].nil? || options['input'].empty?
      fail ArgumentError, 'No input object provided in configuration.'
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我的Rspec测试:

RSpec.describe WhateverClass do
  it 'should raise an ArgumentError when provided invalid input' do
    invalid_input = { 'nonsense' => 'here' }
    expect(WhateverClass.new.run(invalid_input)).to raise_error(ArgumentError)
  end
end
Run Code Online (Sandbox Code Playgroud)

运行上述测试的结果如下:

1) WhateverClass should raise an ArgumentError when provided invalid input
   Failure/Error: expect(WhateverClass.new.run(invalid_input)).to raise_error(ArgumentError)
   ArgumentError:
     No input object provided in configuration.
   # ./whatever_class.rb:9:in `run'
   # ./spec/whatever_class_spec.rb:14:in `block (2 levels) in <top (required)>'
Finished in …
Run Code Online (Sandbox Code Playgroud)

ruby rspec exception

1
推荐指数
2
解决办法
549
查看次数

将数组放入哈希哈希中,将其转换为哈希本身

my %hash = @array;
Run Code Online (Sandbox Code Playgroud)

将数组转换为哈希值,但如何使用$ hash {something}做同样的事情

perl

0
推荐指数
2
解决办法
893
查看次数

C++动态类型 - 重写方法

正常覆盖将以这种方式工作:

class Fruit {
public:
    string color();
};

string Fruit::color() {
    return "Unkown";
};

class Apple : public Fruit {
public:
    string color();
};

string Apple::color() {
    return "Green";
};
Run Code Online (Sandbox Code Playgroud)

现在,你称之为:

Apple *apple = new Apple();
std::cout << apple->color();
Run Code Online (Sandbox Code Playgroud)

这将输出Green,这是正确的!但是,在以下情况下运行它(当然这只是一个例子):

Apple *apple = new Apple();
printHealthy(apple);

// Method printHealthy:

void printHealthy(Fruit *fruit) {
    std::cout << fruit->color();
};
Run Code Online (Sandbox Code Playgroud)

这将输出Unkown,我可以理解,因为你将Apple转换为Fruit,从而'替换'它的方法.但我怎么还能了解它的真实颜色呢?
要求:

  • 我需要知道它的真实颜色是什么.
  • 我不能依赖于Apple--class.将会有更多Apple的东西,在旅途中分配.
  • 每个Apple类(例如Tomato,它们当然有不同的名称)是它的子类Fruit.
  • 并非每个类都实现所有方法.例如,可能存在Apple哪种颜色为 …

c++ overriding subclassing

0
推荐指数
2
解决办法
461
查看次数

在sed模式中指定" - "

我想在一行中找到一个' - '字符,但是这个字符用于指定一个范围.我可以得到一个包含' - '字符的sed模式示例吗?

此外,如果我可以使用包含除空格和制表符之外的所有字符的模式,则会更快.

regex unix linux sed stream

0
推荐指数
1
解决办法
80
查看次数

在Ruby中拆分文本文件两次

我有以下文本文件.

bob jones,19,moore reef,yes,no
jenny smith, 21,reef park,yes,yes
any body, 12,somewhere,no,no
Run Code Online (Sandbox Code Playgroud)

我希望每一行都在一个单独的数组中,或者我希望每个数据片段都有单独的数组(例如,name_array,age_array,destination_array等).

我怎么能这样做?

ruby text file

0
推荐指数
1
解决办法
391
查看次数

如何计算模型中的nil值?

假设我有一个名为"人"的模型,那个人是根据姓名,年龄,性别和种族来定义的.

如何遍历模型以找出哪些值为零?

例如:

姓名:彼得

年龄:34岁

性别:零

种族:没有

- 尼尔数:2--

我知道我会遍历每个字段,如果为nil则输入+1 if并输出总值.

感谢您的帮助或指导!

ruby null activerecord ruby-on-rails count

0
推荐指数
1
解决办法
1057
查看次数