小编wer*_*mon的帖子

有没有任何额外的注射速记

我最近碰到了这个问题:
我总是这样使用注入(我知道(0)部分是可选的,可以省略)

array = [13,23,13]
#=> [13, 23, 13]
array.inject(0) { |sum,i| sum+i }
#=> 49
Run Code Online (Sandbox Code Playgroud)

我偶然发现你可以使用:

array.inject(:+)
#=> 49
array.inject(:-)
#=> -23
array.inject(:*)
#=> 3887
array.inject(:/)
#=> 0
Run Code Online (Sandbox Code Playgroud)

谷歌上搜索这个问题我发现了一篇关于注入的好文章,但没有提到我曾经尝试过的内容....
有人可以向我解释或者提供一些关于我刚用过的注入命令的信息吗?

ruby ruby-on-rails

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

从另一个视图渲染视图

我想在每个渲染的视图上出现一些视图,但是没有重复代码或违反规范,我似乎无法找到实现这一目标的方法.

这是我当前的代码,在每个视图中调用:

def ImOnABoat::Views
  def layout
    html do
      head do title "Petstore" end
      body do yield end
    end
  end

  def navigation
    p "Welcome to our tiny petstore!"
  end

  def poodle
    navigation  # Have to duplicate this in every view
    p "We have a poodle!"
  end

  def fluffy_bunny
    navigation  # Have to duplicate this in every view
    p "Come see-- OH CRAP IT'S A VELOCIRAPTOR!"
  end
end

我也可以通过允许公共块在体外渲染来使其工作,但这违反了规范,并且最终可能会破坏一些刮刀脚本.

def layout
  def head do title "Petstore" end
  nav  # This is not …

ruby ruby-on-rails camping

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

关于Git如何运作的"自下而上"理由

我记得有一段时间阅读一篇很棒的文档,解释了Git按原样设计的理由.至少,我很确定它是特定于Git的,但它可能只适用于DVCS概念.它并没有那么专注于你会投入的实际命令; 相反,它主要关注如何解决脱机工作的问题,使人们在版本之间保持最新版本,跟踪分支之间的变化等,以及Git如何解决这些问题.(同样,它可能是一个不同的DVCS,但我认为它是Git)

从本质上讲,该文档是一个随便写的故事,讲述程序员如何跟踪他们的文件,以及Git(或其他)如何帮助解决这些问题.我记得很早就可以将一个文档的旧版本保存在某个"备份"文件夹中,在文件中标记以跟踪每个版本,以及如何在编码过程中处理错误一个新功能,所以"跟踪文件"增长到包括分支.

我非常喜欢阅读它,因为它清楚地解释了某些功能背后的许多原因,并且是一个伟大的"版本控制故事".我想再次找到它.

git dvcs

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

为什么我必须将函数包含在另一个函数中?

当我用JSON编写函数时,为什么我必须将它包含在匿名函数中?

这有效:

$.ajax({
        type: 'POST',
        url: 'http://www.myurl.com',
        data: data,
        success: function(data) {
            alert(data);
        }
});
Run Code Online (Sandbox Code Playgroud)

这不起作用:

$.ajax({
        type: 'POST',
        url: 'http://www.myurl.com',
        data: data,
        success: alert(data)
});
Run Code Online (Sandbox Code Playgroud)

谢谢

javascript ajax jquery

2
推荐指数
1
解决办法
118
查看次数

为什么Git不听我的工作树论证?

我试图将工作树包含在结帐中,如下所示:

git checkout --work-tree=/elsewhere

但是Git一直抱怨我没有设置工作树,说fatal: This operation must be run in a work tree.

我显然正在设置一个工作树,为什么Git无视这个论点呢?

git

2
推荐指数
1
解决办法
31
查看次数

简单的'或'没有按预期工作

我在下面的相对简单的任务中遇到了一个有趣的问题.开头的每个带括号的块都计算为nil,留下应该分配给Rubygame::Surface.new的值@image.不幸的是,在我设置的下一行@rect,它会抛出NoMethodError,因为它@image是nil.

@image = (image unless image.nil?) or 
         (Rubygame::Surface.autoload(image_file) unless image_file.nil?) or 
         (Rubygame::Surface.autoload("#{@name}.png") unless @name.nil?) or 
         Rubygame::Surface.new([16, 16])
@rect = Rubygame::Rect.new [0, 0], [@image.width, @image.height]
Run Code Online (Sandbox Code Playgroud)

类似的测试按预期运行IRB工作,所以我很确定'或'语句是格式良好的,但我无法弄清楚为什么当其他所有内容都为零时它不会返回新的Surface .

ruby rubygame

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

标签 统计

ruby ×3

git ×2

ruby-on-rails ×2

ajax ×1

camping ×1

dvcs ×1

javascript ×1

jquery ×1

rubygame ×1