我注意到docker的许多entrypoint.sh脚本都是这样的:
#!/bin/bash
set -e
... code ...
exec "$@"
Run Code Online (Sandbox Code Playgroud)
什么是set -e和exec "$@"为什么?
我只是学习编程并决定尝试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方法(两种方法中的第二种),就没有办法与实例变量@noise进行交互.
但是当我删除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吗?
在此先感谢您的帮助.
它可能根本不是一个悖论,但从新手的角度来看,它看起来确实如此.
> Class.superclass
=> Module
> Class.superclass.class
=> Class
> Class.superclass.class.superclass
=> Module
Run Code Online (Sandbox Code Playgroud)
所以类的父级是模块,但模块是一个类?
我怎么能理解这个?
我对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)
这看起来不错吗?
我想在项目目录之外设置一个vagrant实例.有没有办法使用capistrano将rails部署到vagrant VM中,就像我对真正的生产主机一样?
我正在尝试使用服务器作为"localhost",但我得到:
connection failed for: localhost (Errno::ECONNREFUSED: Connection refused - connect(2))
Run Code Online (Sandbox Code Playgroud) 我只是学习使用RVM,并想知道如何执行以下操作:
另外,我如何使用宝石进行上述操作?
在此先感谢您的帮助.
我基本上这样称呼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)
这工作正常..但我如何获得响应标头?
我是编程的新手,而ruby是我第一次真正的编程.我得到了块,但是procs看起来像一个简单的方法/功能概念 - 为什么要使用它们?为什么不直接使用方法呢?
谢谢你的帮助.
为了澄清,我正在使用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)
有两个地点的任何理由?好奇的人想知道.
我有一个具有以下default_scope的用户模型:
default_scope where(account_id: Account.current_account.id)
如果我打电话,User.all我总是根据当前帐户获得结果.
在某些情况下,出于管理目的,我想绕过该范围并查看系统中的所有用户,无论帐户如何.
有没有办法做到这一点?
ruby ×4
angularjs ×1
capistrano ×1
deployment ×1
docker ×1
http ×1
proc-object ×1
rbenv ×1
rspec ×1
rubygems ×1
rvm ×1
shell ×1
vagrant ×1