如何将Unix时间戳(自纪元以来的秒数)转换为Ruby DateTime?
我需要将我的ruby版本从2.0.0更新到最新版本,我不能使用一些宝石,因为我的版本没有更新.我曾经用Homebrew安装Ruby,我怎样才能更新我的Ruby版本?
我在aliasvs. 上发现了一篇博文alias_method.如该博客文章中给出的示例所示,我只想在同一个类中将方法别名为另一个.我应该使用哪个?我总是看到alias用过,但有人告诉我alias_method更好.
别名的用法
class User
def full_name
puts "Johnnie Walker"
end
alias name full_name
end
User.new.name #=>Johnnie Walker
Run Code Online (Sandbox Code Playgroud)
alias_method的用法
class User
def full_name
puts "Johnnie Walker"
end
alias_method :name, :full_name
end
User.new.name #=>Johnnie Walker
Run Code Online (Sandbox Code Playgroud)
对于上下文,它在具有防火墙的远程服务器上.我正在通过代理设置我的环境.我有ruby 1.8.7.当我尝试宝石安装..
sudo gem install --http-proxy <host address>:<port> json
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Building native extensions. This could take a while...
ERROR: Error installing json:
ERROR: Failed to build gem native extension.
/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h
Gem files will remain installed in /usr/lib64/ruby/gems/1.8/gems/json-1.8.1 for inspection.
Results logged to /usr/lib64/ruby/gems/1.8/gems/json-1.8.1/ext/json/ext/generator/gem_make.out
Run Code Online (Sandbox Code Playgroud)
由于我不确定问题是什么,我用Google搜索并找到了这些
gem install:无法构建gem原生扩展(找不到头文件) - 这里的说明似乎特定于正在安装的gem.
如何安装json gem - 无法构建gem native扩展 这似乎是略有不同的错误.
任何提示?谢谢!
我想要Bundler加载本地gem.那有选择吗?或者我是否必须将gem文件夹移动到.bundle目录中?
bash、zsh、fish等 shell 语言与上述脚本语言之间有什么区别,使它们更适合 shell?
使用命令行时,shell 语言似乎要容易得多。对我来说,使用 bash 比在 ipython 中使用 shell 配置文件要顺畅得多,尽管有相反的报道。我认为大多数人都会同意我的观点,Python 中的大部分中型到大型编程比 bash 更容易。我使用 Python 作为我最熟悉的语言,Perl 和 Ruby 也是如此。
我试图阐明原因,但除了假设两者中对字符串的不同处理与此有关之外,我无法阐明原因。
这个问题的原因是我希望开发一种在两者中都可用的语言。如果你知道这种语言,也请张贴。
正如 S.Lott 所解释的,这个问题需要澄清一下。我在询问 shell语言的特性与脚本语言的特性。所以比较不是关于各种交互式(REPL)环境的特性,例如历史和命令行替换。该问题的另一种表达方式是:
一种适用于复杂系统设计的编程语言能否同时表达有用的单行代码,可以访问文件系统或控制作业?一种编程语言可以有效地扩展和缩减吗?
我有一个我想在Ruby中解析的字符串:
string = '{"desc":{"someKey":"someValue","anotherKey":"value"},"main_item":{"stats":{"a":8,"b":12,"c":10}}}'
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法来提取数据?
这更像是"为什么这样做的事情"这个问题,而不是"我不知道该怎么做"这个问题......
所以关于拉动你知道你将要使用的相关记录的福音就是使用,:include因为你将获得一个连接并避免一大堆额外的查询:
Post.all(:include => :comments)
Run Code Online (Sandbox Code Playgroud)
但是,当您查看日志时,没有发生加入:
Post Load (3.7ms) SELECT * FROM "posts"
Comment Load (0.2ms) SELECT "comments.*" FROM "comments"
WHERE ("comments".post_id IN (1,2,3,4))
ORDER BY created_at asc)
Run Code Online (Sandbox Code Playgroud)
它正在采取一种捷径,因为它会立即提取所有注释,但它仍然不是连接(这是所有文档似乎都说的).我可以获得连接的唯一方法是使用:joins而不是:include:
Post.all(:joins => :comments)
Run Code Online (Sandbox Code Playgroud)
日志显示:
Post Load (6.0ms) SELECT "posts".* FROM "posts"
INNER JOIN "comments" ON "posts".id = "comments".post_id
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?我有一个有六个关联的应用程序,在一个屏幕上我显示所有这些数据.似乎最好有一个加入查询而不是6个人.我知道在性能方面,进行连接而不是单个查询并不总是更好(事实上,如果你花费时间,看起来上面的两个单独的查询比连接更快),但是在所有文档之后我一直在阅读,我很惊讶地看到:include不像宣传的那样工作.
也许Rails的是认识到性能问题,并除非在某些情况下,不加入呢?