小编Tod*_*obs的帖子

是否可以在erb模板中要求一个类?

我有一个erb模板,我需要在其中使用:

CGI.unescapeHTML(someEscapedHTML)

所以我需要'cgi',但是以下失败:

<% require 'cgi' %>
Run Code Online (Sandbox Code Playgroud)

有错误:

不能重复NilClass

templates ruby-on-rails erb require

5
推荐指数
2
解决办法
4568
查看次数

为什么在视图中同时使用<%和<%=?

如果我写的东西如下:

<% if signed_in?.blank? %> 要么 <%= link_to "Sign Up", sign_up_path %>

是什么的两个标志之间的差异<%<%=

为什么要这样做而不是仅仅为了简单而使用一个?

当我知道我需要使用<%<%=

ruby-on-rails erb

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

这种动态方法定义的工作原理和原因是什么?

以下代码如何工作,更重要的是,它为什么会这样工作?

class Example
  def one
    def one
      @value = 99
    end
    puts "Expensive Call"
    @value = 99 # assume its expensive call
  end
end

ex = Example.new
puts ex.one # => "Expensive Call"; 99
puts ex.one # => 99
Run Code Online (Sandbox Code Playgroud)

这里,在第一次调用方法时one,Ruby执行外部one方法,但是在连续调用时,它只执行内部one方法,one完全绕过外部方法.

我想知道它是如何发生的,为什么会这样.

ruby metaprogramming

5
推荐指数
2
解决办法
176
查看次数

为什么这个for循环不处理数组的所有元素?

给出以下脚本:

#!/bin/bash

asteriskFiles=("sip.conf" "extensions.conf")

for asteriskFile in $asteriskFiles
do
    # backup current configuration file
    cp somepath/${asteriskFile} test/
    echo "test"
done
Run Code Online (Sandbox Code Playgroud)

这给了我输出"test"一次,所以循环只运行一次而不是两次(asteriskFiles数组中的两个条目).我究竟做错了什么?谢谢你的提示!

arrays bash for-loop

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

测试是否没有给出位置参数的惯用方法?

如果没有给出位置参数,在 Bash 中测试最惯用的方法是什么?有很多方法可以检查这一点,我想知道是否有一种首选方法。

一些方法是:

((! $# )) # check if $# is 'not true'
(($# == 0)) # $# is 0
[[ ! $@ ]] # $@ is unset or null
Run Code Online (Sandbox Code Playgroud)

parameters bash idioms command-line-arguments conditional-statements

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

如何从HTML文件中提取标签的属性值?

我知道,不要使用curl,grep和sed解析.但我正在寻找一种简单的方法,而不是一种非常安全的方法.

所以我得到一个带curl的HTML文件,我需要从标签中获取某个属性的值.我用grep来告诉我它说的那条线token.这只发生一次.这给了我一个完整的div:

<div class="userlinks">
  <span class="arrow flleft profilesettings">settings</span>
  <form class="logoutform" method="post" action="/logout">
    <input class="logoutbtn arrow flright" type="submit" value="Log out">
    <input type="hidden" name="ltoken" value="a5fc8828a42277538f1352cf9ea27a71">
  </form>
</div>
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到value属性(例如"a5fc8828a42277538f1352cf9ea27a71")?

regex bash

5
推荐指数
3
解决办法
2万
查看次数

流水线sed调用和多个sed表达式之间的效率是否存在差异?

我对bash中的sed效率有疑问.我有一系列流水线的sed语句,例如:

var1="Some string of text"

var2=$(echo "$var1" | sed 's/pattern1/replacement1/g' | sed 's/pattern2/replacement2/g' | sed 's/pattern3/replacement3/g' | sed 's/pattern4/replacement4' | sed 's/pattern5/replacement5/g')
Run Code Online (Sandbox Code Playgroud)

假设没有输入依赖于早期sed管道的编辑输出,我最好用表达式语句编写上面的脚本吗?例如:

var2=$(echo "$var1" | sed -e's/pattern1/replacement1/g' -e's/pattern2/replacement2/g' -e's/pattern3/replacement3/g' -e's/pattern4/replacement4/g' -e's/pattern5/replacement5/g')
Run Code Online (Sandbox Code Playgroud)

这里有效率吗?

regex bash performance sed

5
推荐指数
2
解决办法
419
查看次数

如何避免使用git-pull合并特定文件?

在我的本地存储库中,我有一个修改过的设置文件,其中包含存储在GitHub上的不同版本的文件.每当我从GitHub进入我的本地存储库时,我的本地副本就会被更改.

有没有办法避免我的本地副本被git-pull覆盖?

git github gitignore git-pull

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

我可以使用正则表达式执行词干化吗?

如何让我的正则表达式完全匹配一个条件

例如,我有以下正则表达式:

(\w+)(?=ly|es|s|y)
Run Code Online (Sandbox Code Playgroud)

将表达式与"眼镜"这个词匹配会返回:

glasse
Run Code Online (Sandbox Code Playgroud)

正确的匹配应该是:

glass (match should be on 'es' rather than 's' as in the match above)
Run Code Online (Sandbox Code Playgroud)

表达式应该适用于任何类型的单词,例如:

films
lovely
glasses
glass
Run Code Online (Sandbox Code Playgroud)

目前正则表达式与上述单词匹配为:

film - correct
lovel - incorrect
glasse - incorrect
glas - incorrect
Run Code Online (Sandbox Code Playgroud)

这些单词的正确匹配应为:

film
love
glass
glass
Run Code Online (Sandbox Code Playgroud)

我现在遇到的问题是我不确定如何调整我的正则表达式以正确地满足's'或'es',因为一个单词可以包含诸如"眼镜"之类的两个单词.

更新

谢谢你到目前为止的答案.我很欣赏词干的复杂性和语言知识的要求.然而,在我的特定情况下,单词是有限的(电影,可爱,眼镜和玻璃),因此我只会在上面的表达式中遇到这些单词和后缀.我没有特定的申请.我只是想知道是否可以使用正则表达式.我得出的结论是,这是不可能的,但是以下是可能的:

找到或找不到匹配项,例如匹配眼镜但不是玻璃,但DO匹配电影:

film (match) - (films)
glass (match) - (glasses)
glass (no match) - (glass)
Run Code Online (Sandbox Code Playgroud)

我在想的是,是否有一种方法可以将后缀与末尾的字符串完全匹配.在上面的例子中,'es'匹配glass,因此条件's'被丢弃.在玻璃的情况下(不匹配)条件's'被丢弃,因为另一个's'在它之前,它不完全匹配.我必须承认我不是百分之百关于这一点所以我的逻辑可能看起来有点不对劲,这只是一个想法.

regex stemming

5
推荐指数
2
解决办法
1984
查看次数

如何在Ruby on Rails中批量上传图像(一次大约100-200张图像)?

我想批量上传图像(每个大约200 kB).我们有多种选择,如CarrierWave,Paperclip等.如何批量执行这些上传?

file-upload ruby-on-rails bulk image-uploading

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