标签: ruby

Ruby用捕获的正则表达式模式替换字符串

我无法将其转换为Ruby.

这是一段完全符合我要求的JavaScript:

function get_code(str){
    return str.replace(/^(Z_.*): .*/,"$1")???????????????????????????;
}
Run Code Online (Sandbox Code Playgroud)

我尝试过gsub,subreplace,但似乎没有人做我期待的事情.

以下是我尝试过的例子:

"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/) { |capture| capture }
"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "$1")
"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "#{$1}")
"Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "\1")
"Z_sdsd: sdsd".gsub(/(.).*/) { |capture| capture }
Run Code Online (Sandbox Code Playgroud)

ruby regex replace

112
推荐指数
4
解决办法
10万
查看次数

在Rails App上安装Bootstrap 3

我正在尝试在我的Rails应用程序上安装Bootstrap 3.0.我最近完成了Michael Hartl的教程,现在我正在尝试使用这个新版本的Bootstrap构建我自己的系统,但是我有一些我不确定的问题.

我的系统规格:

  • MBP上的OS X Mountain Lion
  • Rails 4.0
  • Ruby 2.0

我有的问题:

  1. 在我的Gemfile中使用的最佳宝石是什么?我找到了一些.
  2. 我在进口什么custom.css.scss?我读到的地方与2.3.2有所不同.
  3. 还有什么我需要做的才能让Bootstrap工作,或者剩下的步骤是否与我为Bootstrap 2.3.2所遵循的步骤相同?

编辑

以下是GitHub上bootstrap-rails项目首先要做的事情:

gem 'anjlab-bootstrap-rails', :require => 'bootstrap-rails',
                              :github => 'anjlab/bootstrap-rails'
Run Code Online (Sandbox Code Playgroud)

然后它说:

gem 'anjlab-bootstrap-rails', '>= 3.0.0.0', :require => 'bootstrap-rails'
Run Code Online (Sandbox Code Playgroud)

他们做同样的事情,还是你必须做同样的事情?

ruby ruby-on-rails twitter-bootstrap-3

112
推荐指数
6
解决办法
10万
查看次数

在Rails中 - 有一个rails方法将换行符转换为<br>吗?

是否有一种Railsy方式将\n转换为<br>

目前,我这样做:

mystring.gsub(/\n/, '<br>')
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

111
推荐指数
4
解决办法
5万
查看次数

如何在没有开始和结束块的情况下在Ruby中使用rescue

我知道有一个开始救援结束的标准技术

如何单独使用救援区.

它是如何工作的以及它如何知道正在监视哪些代码?

ruby

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

使用do block vs braces {}

新的红宝石,穿上你的新手套.

以下两个片段之间是否有任何区别(模糊或实用)?

my_array = [:uno, :dos, :tres]
my_array.each { |item| 
    puts item
}

my_array = [:uno, :dos, :tres]
my_array.each do |item| 
    puts item
end
Run Code Online (Sandbox Code Playgroud)

我意识到括号语法允许你将块放在一行上

my_array.each { |item| puts item }
Run Code Online (Sandbox Code Playgroud)

但除此之外是否有任何令人信服的理由使用一种语法而不是另一种语法?

ruby coding-style

111
推荐指数
4
解决办法
6万
查看次数

本月的名称(Date.today.month作为名称)

Date.today.month用来显示月号.是否有获取月份名称的命令,或者我是否需要提出案例来获取它?

ruby

111
推荐指数
5
解决办法
6万
查看次数

将字符串转换为正则表达式ruby

我需要将"/ [\ w\s] + /"之类的字符串转换为正则表达式.

"/[\w\s]+/" => /[\w\s]+/
Run Code Online (Sandbox Code Playgroud)

我尝试使用不同的Regexp方法,如:

Regexp.new("/[\w\s]+/") => /\/[w ]+\//,同样Regexp.compileRegexp.escape.但是没有一个像我预期的那样回归.

我还尝试删除反斜杠:

Regexp.new("[\w\s]+") => /[w ]+/ 但没有运气.

然后我试着这么简单:

str = "[\w\s]+"
=> "[w ]+"
Run Code Online (Sandbox Code Playgroud)

它逃脱了.现在,字符串如何保持不变并转换为正则表达式对象?

ruby regex string ruby-1.9.3

111
推荐指数
5
解决办法
6万
查看次数

如何使用RVM更改我的Ruby版本?

我无法切换当前的Ruby版本:

?  ~  rvm list

rvm rubies

   ruby-1.9.2-p290 [ x86_64 ]
   ruby-1.9.3-p0 [ x86_64 ]

?  ~  rvm use ruby-1.9.3-p0

RVM is not a function, selecting rubies with 'rvm use ...' will not work.
Run Code Online (Sandbox Code Playgroud)

ruby rvm

111
推荐指数
6
解决办法
8万
查看次数

Ruby - 如果不是数组,则优雅地将变量转换为数组

给定一个数组,单个元素或nil,获得一个数组 - 后两个分别是单个元素数组和一个空数组.

我错误地认为Ruby会以这种方式工作:

[1,2,3].to_a  #= [1,2,3]     # Already an array, so no change
1.to_a        #= [1]         # Creates an array and adds element
nil.to_a      #= []          # Creates empty array
Run Code Online (Sandbox Code Playgroud)

但你真正得到的是:

[1,2,3].to_a  #= [1,2,3]         # Hooray
1.to_a        #= NoMethodError   # Do not want
nil.to_a      #= []              # Hooray
Run Code Online (Sandbox Code Playgroud)

所以要解决这个问题,我需要使用另一种方法,或者我可以通过修改我打算使用的所有类的to_a方法来进行元编程 - 这对我来说不是一个选项.

所以它是一个方法:

result = nums.class == "Array".constantize ? nums : (nums.class == "NilClass".constantize ? [] : ([]<<nums))
Run Code Online (Sandbox Code Playgroud)

问题是它有点混乱.这样做有一种优雅的方式吗?(如果这是解决这个问题的Ruby-ish方法,我会很惊讶)


这有什么应用?为什么甚至转换为阵列?

在Rails的ActiveRecord中,调用say user.posts会返回一组帖子,一个帖子或者nil.在编写处理结果的方法时,最简单的假设该方法将采用一个数组,该数组可能包含零个,一个或多个元素.示例方法:

current_user.posts.inject(true) {|result, element| result and (element.some_boolean_condition)}
Run Code Online (Sandbox Code Playgroud)

ruby arrays

111
推荐指数
6
解决办法
7万
查看次数

你能在Ruby中提供map(&:method)语法的参数吗?

您可能熟悉以下Ruby简写(a是一个数组):

a.map(&:method)
Run Code Online (Sandbox Code Playgroud)

例如,在irb中尝试以下操作:

>> a=[:a, 'a', 1, 1.0]
=> [:a, "a", 1, 1.0]
>> a.map(&:class)
=> [Symbol, String, Fixnum, Float]
Run Code Online (Sandbox Code Playgroud)

语法a.map(&:class)是一种简写a.map {|x| x.class}.

阅读" Ruby中的map(&:name)是什么意思? "中有关此语法的更多信息.

通过语法&:class,您class将为每个数组元素进行方法调用.

我的问题是:你能为方法调用提供参数吗?如果是这样,怎么样?

例如,如何转换以下语法

a = [1,3,5,7,9]
a.map {|x| x + 2}
Run Code Online (Sandbox Code Playgroud)

&:语法?

我并不是说&:语法更好.我只是对使用&:带参数的语法的机制感兴趣.

我假设你知道这+是Integer类的一个方法.您可以在irb中尝试以下操作:

>> a=1
=> 1
>> a+(1)
=> 2
>> a.send(:+, 1)
=> 2
Run Code Online (Sandbox Code Playgroud)

ruby

110
推荐指数
7
解决办法
3万
查看次数