小编And*_*imm的帖子

Ruby中的闭包

我对闭包有点麻烦,我想知道规范的make-adder过程的等效代码在Ruby中是什么.

在计划中它将是:

(define (make-adder n)
 (lambda (x) (+ x n))
Run Code Online (Sandbox Code Playgroud)

ruby closures

12
推荐指数
1
解决办法
2613
查看次数

如何将方法动态定义为私有?

这似乎不起作用:

class Test
  private

  define_method :private_method do 
    "uh!"
  end
end

puts Test.new.private_method
Run Code Online (Sandbox Code Playgroud)

ruby methods metaprogramming access-specifier

12
推荐指数
3
解决办法
7080
查看次数

在ruby中,你可以在irb中执行assert_equal和其他断言吗?

你能从irb中执行assert_equal吗?这不起作用.

require 'test/unit'
assert_equal(5,5)
Run Code Online (Sandbox Code Playgroud)

ruby testunit

12
推荐指数
3
解决办法
1万
查看次数

当前版本的msysgit是否支持进程替换?

在我的msysgit版本下,我无法使用进程替换.

cat <(echo 'foo')
sh.exe": cannot make pipe for process substitution: Function not implemented
Run Code Online (Sandbox Code Playgroud)

如果我升级到最新版本的msysgit,它的msys/mingw版本是否能够处理进程替换?

我当前版本的msysgit是1.7.0.2.msysgit.0,GNU bash是版本3.1.0(3)-release(i686-pc-msys).

ipc mingw msys msysgit

12
推荐指数
2
解决办法
1368
查看次数

Ruby中的简单Currying

我正试图在红宝石中做一些讨论:

def add(a,b)
  return a+b
end

plus = lambda {add}
curry_plus = plus.curry
plus_two = curry_plus[2] #Line 24
puts plus_two[3]
Run Code Online (Sandbox Code Playgroud)

我收到了错误

func_test.rb:24:in `[]': wrong number of arguments (1 for 0) (ArgumentError)
Run Code Online (Sandbox Code Playgroud)

来自func_test.rb:24:in''

但如果我这样做

plus = lambda {|a,b| a+ b}
Run Code Online (Sandbox Code Playgroud)

它似乎工作.但是在使用lambda分配后,通过打印加两种方式都返回相同类型的对象.我误解了什么?

ruby currying

12
推荐指数
2
解决办法
4483
查看次数

在ruby中,对于以问号结尾的方法名称,是否是真实的惯用语?

带有问号的方法返回一些真实的东西(例如,一个数字)以表明某些东西是真的,或者true本身应该返回它是否正常?

例如,Ruby标准库或Rails中是否有使用真实性的例子?

背景:有人String#int?回答一个单独的问题时编写了一个方法,该问题返回一个表示true的整数,并nil表示false.另一位用户对没有返回布尔值感到惊讶.

ruby idioms truthiness

12
推荐指数
2
解决办法
727
查看次数

为什么可以使用Enumerable#each_with_object?

根据ApiDock,Ruby方法Enumerable#each_with_object已被弃用.除非它是错误的(说"在Rails的最新稳定版本上弃用"让我怀疑可能是Rails的猴子修补已被弃用),为什么它被弃用了?

ruby enumerable

12
推荐指数
3
解决办法
7703
查看次数

如何在哈希中创建哈希

我如何在哈希中创建哈希,嵌套哈希有一个键来识别它.我在嵌套哈希中创建的元素也是如何为它们设置密钥的

例如

test = Hash.new()

#create second hash with a name?? test = Hash.new("test1")??
test("test1")[1] = 1???
test("test1")[2] = 2???

#create second hash with a name/key test = Hash.new("test2")???
test("test2")[1] = 1??
test("test2")[2] = 2??
Run Code Online (Sandbox Code Playgroud)

谢谢

ruby hash ruby-on-rails hash-of-hashes

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

Active Admin自定义操作项资源名称

不知道为什么我似乎无法解决这个问题,因为它似乎应该如此简单,但基本上,我正在尝试创建一个动作的链接(我希望"发布"出现在show旁边,编辑,删除)为Active Admin中的每个资源.

我在他们的维基上使用了他们建议的代码:

 action_item do
    link_to "button label", action_path(post)
 end
Run Code Online (Sandbox Code Playgroud)

问题是,我收到错误,因为rails不知道"post"是什么.这是零.Github上的Wiki版本具有相同的代码,除了它们使用"资源"而不是帖子.我不确定他们是否暗示我会在那里使用我自己的资源名称,或者你是否应该实际使用变量"resource".我尝试了后一种情况并得到了"找不到ID"错误.

所以问题是,我在哪里设置变量名称?他们使用什么作为迭代器?

resources ruby-on-rails activeadmin

12
推荐指数
3
解决办法
1万
查看次数

"修改太多"git消息

在git版本1.7.9.5,尝试时

git stash show -p stash@{"Friday Smarch 13 13:13:13 2013"}
Run Code Online (Sandbox Code Playgroud)

(是否可以选择一个git stash,当它们被隐藏的日期描述?)

我收到错误消息

Too many revisions specified: stash@{Friday Smarch 13 13:13:13 2013}
Run Code Online (Sandbox Code Playgroud)

尝试以下操作时,我也会收到相同的错误消息

git stash show "stash@{Friday Smarch 13 13:13:13 2013}"
git stash show -p stash@{Friday\ Smarch\ 13\ 13:13:13\ 2013}
Run Code Online (Sandbox Code Playgroud)

我不认为逃避是原因.如果我做

git stash show -p stash@{Friday\ Smarch\ 13\ 13:13:13 2013}
Run Code Online (Sandbox Code Playgroud)

然后我收到一个不同的错误消息:

fatal: ambiguous argument 'stash@{Friday Smarch 13 13:13:13': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
Run Code Online (Sandbox Code Playgroud)

相比之下,做

git stash show …
Run Code Online (Sandbox Code Playgroud)

git powershell git-stash

12
推荐指数
1
解决办法
2996
查看次数