Tag: 拆分

使用Split进行Rails A / B测试,共享相同实验的多个视图(辅助方法?)

我有许多不同的视图需要共享相同的实验(即页脚和标题部分需要同时显示’nav_a’或’nav_b’选项)。 我原本希望简单地使用相同的命名实验可以使这个工作但似乎没有(即有时标题有’a’而页脚有’b’,反之亦然或两者都相同)。 我怎么能最好地实现这个目标? 作为第二个问题,我的“实验”的一部分是知道哪个视图在让用户点击video链接方面更成功; 在我的应用程序中,我将这些点击保存为“访问”模型; 无论如何,visit_controller可以知道哪个测试 – a或b – 正在运行,所以我可以将它保存到我的访问模型中? 这样我可以计算哪个访问模型具有’实验1选项’与’实验2选项b’等。 我会对一个简单的全局变量感到高兴,知道要保存哪个; 不确定如何以这种方式启动分割中的ab_test。 更新: 这是当前页面的示例代码: /layout/header.html.erb的行如下: 和/layout/footer.html erb有 但他们并没有始终如一地选择相同的选择。 还不确定如何最好地实现’helper_method’,如文档中所述: https : //github.com/andrew/split#views 更新#2 我只是尝试将layouts / header.html.erb和layouts / footer.html.erb中的代码更改为: 当我离开这两个其他布局拉入SAME部分(即_test_a.html.erb)时,它们都同步并显示预期的内容。 但是,当我更改布局/ footer.html.erb以呈现此部分时: 它们不再是同步并且会随机显示不同的部分 – 即第一个A +页脚B,然后是页眉b和页脚b,标题a +页脚b等 – 所有这些都在同一个会话中。

Ruby循环和类; 将字符串拆分为数组并再次返回字符串

Ruby新手在这里处理循环与类。 我应该创建一个方法,它将采用一个字符串并在每个单词的末尾添加感叹号(通过使其成为一个带有.split的数组)并再次将“惊呼”的单词作为字符串加入。 我已经在这里待了两个小时,并决定我应该寻求帮助。 我有一些想法,但我不断提出NoMethod错误。 以下是对我有意义的方法之一,但当然,它不起作用。 我还在最后添加了规格。 class StringModifier attr_accessor :string def initialize(string) @string = string end def proclaim new_array = [] string.split.each do |word| new array = “#{word}!” new_array.join end new_array end end 眼镜 describe StringModifier do describe “#proclaim” do it “adds an exclamation mark after each word” do blitzkrieg_bop = StringModifier.new(“Hey ho let’s go”).proclaim […]

Ruby .split()正则表达式

我正在尝试将字符串”[test| blah] [foo |bar][test|abc]”拆分为以下数组: [ [“test”,”blah”] [“foo”,”bar”] [“test”,”abc”] ] 但我无法正确表达我的正则表达式。 ruby: @test = ‘[test| blah] [foo |bar][test|abc]’.split(%r{\s*\]\s*\[\s*}) @test.each_with_index do |test, i| @test[i] = test.split(%r{\s*\|\s*}) end 我不在那里,这回来了: [ [ “[test” , “blah” ] [ “foo” , “bar” ] [ “test” , “abc]” ] ] 实现这一目标的正确正则表达式是什么? 如果我还可以考虑新行,那就太好了,比如说: “[test| blah] \n [foo |bar]\n[test|abc]”

为什么分裂(”)试图(太)聪明?

我刚刚发现了String#split的以下奇怪行为: “a\tb c\nd”.split => [“a”, “b”, “c”, “d”] “a\tb c\nd”.split(‘ ‘) => [“a”, “b”, “c”, “d”] “a\tb c\nd”.split(/ /) => [“a\tb”, “c\nd”] 源 (string.c from 2.0.0)超过200行,包含如下所示的段落: /* L 5909 */ else if (rb_enc_asciicompat(enc2) == 1) { if (RSTRING_LEN(spat) == 1 && RSTRING_PTR(spat)[0] == ‘ ‘){ split_type = awk; } } 之后,在awk split类型的代码中,实际参数甚至不再使用,并且与普通split相同。 有没有人觉得这有点被打破了? 这有充分的理由吗? 这样的“魔术”是否比大多数人在Ruby中想象的更频繁?