小编Nat*_*han的帖子

set -e和exec"$ @"为docker入口点脚本做了什么?

我注意到docker的许多entrypoint.sh脚本都是这样的:

#!/bin/bash
set -e

... code ...

exec "$@"
Run Code Online (Sandbox Code Playgroud)

什么是set -eexec "$@"为什么?

shell docker

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

试图学习/理解Ruby setter和getter方法

我只是学习编程并决定尝试Ruby.我确定这是一个愚蠢的问题,但是教练正在讨论setter和getter方法,我很困惑.这是一个例子:

class Human
  def noise=(noise)
    @noise = noise
  end

  def noise
    @noise
  end
end
Run Code Online (Sandbox Code Playgroud)

从这个,实例化类,我可以把它说出来:

man = Human.new
man.noise=("Howdie!")
puts man.noise
Run Code Online (Sandbox Code Playgroud)

这导致了 Howdie!

现在令我困惑的是,教师说没有getter方法(两种方法中的第二种),就没有办法与实例变量@noi​​se进行交互.

但是当我删除getter方法时,我仍然可以访问@noise,参见示例:

class Human
  def noise=(noise)
    @noise = noise
  end
end

man = Human.new
puts man.noise=("Howdie!")
Run Code Online (Sandbox Code Playgroud)

这与使用它的getter方法相同.

所以现在我很困惑.为什么需要吸气剂?没有它,教师的意思是无法访问实例变量?他有可能使用旧版本的Ruby吗?

在此先感谢您的帮助.

ruby

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

有人可以解释Class.superclass.class.superclass悖论吗?

它可能根本不是一个悖论,但从新手的角度来看,它看起来确实如此.

> Class.superclass
=> Module
> Class.superclass.class
=> Class
> Class.superclass.class.superclass
=> Module
Run Code Online (Sandbox Code Playgroud)

所以类的父级是模块,但模块是一个类?

我怎么能理解这个?

ruby metaprogramming

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

为什么人们在Gemfile中对rspec进行测试和开发?

我对Bundler Gemfile选项一般都很清楚,但我不确定为什么rspec(特别是rspec-rails)应该同时用于测试和开发.

以下是我的测试分组:

group :development, :test do
  gem 'rspec-rails'
  gem 'faker'
end

group :test do
  gem "factory_girl_rails"
  gem "capybara"
  gem 'guard-rspec'
  gem 'rb-fsevent'
  gem 'growl'
end
Run Code Online (Sandbox Code Playgroud)

这看起来不错吗?

rspec ruby-on-rails

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

有没有办法使用Capistrano部署到流浪汉?

我想在项目目录之外设置一个vagrant实例.有没有办法使用capistrano将rails部署到vagrant VM中,就像我对真正的生产主机一样?

我正在尝试使用服务器作为"localhost",但我得到:

connection failed for: localhost (Errno::ECONNREFUSED: Connection refused - connect(2))
Run Code Online (Sandbox Code Playgroud)

deployment capistrano ruby-on-rails vagrant

21
推荐指数
2
解决办法
7219
查看次数

如何使用RVM卸载ruby和gem?

我只是学习使用RVM,并想知道如何执行以下操作:

  1. 删除特定版本的Ruby和/或所有版本的Ruby.
  2. 验证删除该版本,使用RVM并只是查看我的目录,配置文件等(我应该在哪里看?)
  3. 安装特定版本的Ruby.

另外,我如何使用宝石进行上述操作?

在此先感谢您的帮助.

ruby-on-rails rvm

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

如何在Angular中使用$ resource访问响应头?

我基本上这样称呼get请求:

var resource = $resource('/api/v1/categories/:id')

resource.get({id: 1}).$promise.then(function(data){
  console.log(data)
})
Run Code Online (Sandbox Code Playgroud)

这工作正常..但我如何获得响应标头?

http angularjs angular-resource

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

为什么使用procs而不是方法?

我是编程的新手,而ruby是我第一次真正的编程.我得到了块,但是procs看起来像一个简单的方法/功能概念 - 为什么要使用它们?为什么不直接使用方法呢?

谢谢你的帮助.

ruby proc-object

17
推荐指数
2
解决办法
3154
查看次数

我正在使用rbenv,为什么我的系统上有两条Gem路径?(OS X Lion)

为了澄清,我正在使用rbenv管理我的ruby版本.我的印象是二进制文件shims在各自的ruby版本目录中进行管理.

这是我的系统在运行gem环境时显示的内容(我排除了不相关的部分):

 - GEM PATHS:
     - /Volumes/Data/nathan/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1
     - /Volumes/Data/nathan/.gem/ruby/1.9.1
Run Code Online (Sandbox Code Playgroud)

有两个地点的任何理由?好奇的人想知道.

ruby rubygems rbenv

16
推荐指数
2
解决办法
2万
查看次数

如何绕过default_scope?

我有一个具有以下default_scope的用户模型:

default_scope where(account_id: Account.current_account.id)

如果我打电话,User.all我总是根据当前帐户获得结果.

在某些情况下,出于管理目的,我想绕过该范围并查看系统中的所有用户,无论帐户如何.

有没有办法做到这一点?

ruby-on-rails

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