我无法将其转换为Ruby.
这是一段完全符合我要求的JavaScript:
function get_code(str){
return str.replace(/^(Z_.*): .*/,"$1")???????????????????????????;
}
Run Code Online (Sandbox Code Playgroud)
我尝试过gsub,sub和replace,但似乎没有人做我期待的事情.
以下是我尝试过的例子:
"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) 我正在尝试在我的Rails应用程序上安装Bootstrap 3.0.我最近完成了Michael Hartl的教程,现在我正在尝试使用这个新版本的Bootstrap构建我自己的系统,但是我有一些我不确定的问题.
我的系统规格:
我有的问题:
custom.css.scss?我读到的地方与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)
他们做同样的事情,还是你必须做同样的事情?
是否有一种Railsy方式将\n转换为<br>?
目前,我这样做:
mystring.gsub(/\n/, '<br>')
Run Code Online (Sandbox Code Playgroud) 我知道有一个开始救援结束的标准技术
如何单独使用救援区.
它是如何工作的以及它如何知道正在监视哪些代码?
新的红宝石,穿上你的新手套.
以下两个片段之间是否有任何区别(模糊或实用)?
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)
但除此之外是否有任何令人信服的理由使用一种语法而不是另一种语法?
我Date.today.month用来显示月号.是否有获取月份名称的命令,或者我是否需要提出案例来获取它?
我需要将"/ [\ w\s] + /"之类的字符串转换为正则表达式.
"/[\w\s]+/" => /[\w\s]+/
Run Code Online (Sandbox Code Playgroud)
我尝试使用不同的Regexp方法,如:
Regexp.new("/[\w\s]+/") => /\/[w ]+\//,同样Regexp.compile和Regexp.escape.但是没有一个像我预期的那样回归.
我还尝试删除反斜杠:
Regexp.new("[\w\s]+") => /[w ]+/ 但没有运气.
然后我试着这么简单:
str = "[\w\s]+"
=> "[w ]+"
Run Code Online (Sandbox Code Playgroud)
它逃脱了.现在,字符串如何保持不变并转换为正则表达式对象?
我无法切换当前的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) 给定一个数组,单个元素或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简写(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)