在git中,如果我的索引中存在来自同一文件的几个帅哥,我怎么能以交互方式取消其中一个呢?
是否可以替换整个文件,然后重新暂存我想要保留的数据,或者手动撤消对工作副本的更改,然后以交互方式添加这些撤消的更改?
我已经看到两种常用的技术,用于将当前正在执行的文件的目录添加到$ LOAD_PATH(或$ :).如果你不使用宝石,我会看到这样做的好处.显然,一个看起来比另一个看起来更冗长,但有理由与其中一个相提并论吗?
第一个,冗长的方法(可能是过度杀伤):
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__)))
Run Code Online (Sandbox Code Playgroud)
而且更直接,快速和肮脏:
$:.unshift File.dirname(__FILE__)
Run Code Online (Sandbox Code Playgroud)
有理由和其他人一起去吗?
我正在寻找一种更好的方法将变量合并到一个字符串中,在Ruby中.
例如,如果字符串是这样的:
"的animal action的second_animal"
我有变量animal,action并且second_animal,将这些变量放入字符串的首选方法是什么?
谁能告诉我类变量和类实例变量之间的区别?
hash = { "d" => [11, 22], "f" => [33, 44, 55] }
# case 1
hash.map {|k,vs| vs.map {|v| "#{k}:#{v}"}}.join(",")
=> "d:11,d:22,f:33,f:44,f:55"
# case 2
hash.map {|k,vs| vs.each {|v| "#{k}:#{v}"}}.join(",")
=> "11,22,33,44,55"
Run Code Online (Sandbox Code Playgroud)
唯一的区别是案例1使用vs.map,案例2使用vs.each.
这里发生了什么?
我一直在研究一些rails admin插件,并遇到了这些:
https://github.com/gregbell/active_admin
https://github.com/sferik/rails_admin
https://github.com/thoughtbot/administrate(编辑:稍后添加)
有关哪一个的建议.我需要它来支持模型关联和文件上传功能.
ruby ruby-on-rails ruby-on-rails-plugins ruby-on-rails-3 activeadmin
我是ruby的新手,目前正尝试与ruby中的基本字符串分别对每个字符进行操作.我正在使用ruby 1.8.6并想做类似的事情:
"ABCDEFG".each_char do |i|
puts i
end
Run Code Online (Sandbox Code Playgroud)
这会产生一个未定义的方法`each_char'错误.
我期待看到垂直输出:
A
B
C
D
..etc
Run Code Online (Sandbox Code Playgroud)
该each_char方法仅定义为1.9吗?我尝试使用普通each方法,但块只是将整个字符串输出到一行.我想办法如何做到这一点的唯一方法就是从头开始创建一个字符数组:
['A','B','C','D','...'].each do|i|
puts i
end
Run Code Online (Sandbox Code Playgroud)
这输出所需的:
A
B
C
..etc
Run Code Online (Sandbox Code Playgroud)
是否有一种方法可以使用未修改的字符串开始实现此输出?
我认为Java等价物是:
for (int i = 0; i < aString.length(); i++){
char currentChar = aString.charAt(i);
System.out.println(currentChar);
}
Run Code Online (Sandbox Code Playgroud) 我有一些模块,我想在其中使用实例变量.我目前正在初始化它们:
module MyModule
def self.method_a(param)
@var ||= 0
# other logic goes here
end
end
Run Code Online (Sandbox Code Playgroud)
我也可以调用init方法来初始化它们:
def init
@var = 0
end
Run Code Online (Sandbox Code Playgroud)
但这意味着我必须记住要经常打电话给它.
有没有更好的方法呢?