Ruby中的符号和变量有什​​么区别?

我试图理解符号和ruby中的变量之间的区别。 在给出引用对象的名称时,它们似乎完全相同。 我已经读过这些符号可用于更快的程序,但我不确定它们为何或如何以任何方式与变量不同。

在同一行上初始化两个变量

我很难找到一个权威的例子或讨论这个概念。 如果我的Ruby方法中有2个变量是数字,我需要将它们初始化为零。 它们将用作计数器。 这样可以还是安全的? 它适用于我的测试。 而不是这个: foo = 0 bar = 0 你可以这样做? foo = bar = 0 这似乎是一种保存线条并且仍然具有表现力的好方法。 或者,这是一种不好的做法吗? 我意识到我会牺牲一点可读性。 但是,在一个小的Ruby方法(<10行)中,这可能不是一个有效的问题。

Capistrano – 无法部署我的database.yml

当我尝试使用capistrano部署我的应用程序时,我会收到此错误: 失败:IP_ADDR上的“sh -c’cp /var/www/my_app/releases/20120313115055/config/database.staging.yml /var/www/my_app/releases/20120313115055/config/database.yml’” 我的database.yml即空, database.staging.yml : production: adapter: mysql2 encoding: utf8 reconnect: false database: my_db pool: 15 username: my_user_name password: my_pass host: localhost 在/ confing / deploy中是文件“production”“staging” 我在这里缺少什么/我应该在哪里寻找失败? 服务器上数据库的凭据应该是正确的。 编辑 – 这是我的部署 set :application, “my_app” set :repository, “https://IP_ADDR/svn/my_app” set :scm, :subversion set :scm_username, ‘my_name’ set :scm_password, ‘my_pass’ default_run_options[:pty] = true set :user, “my_name” […]

Ruby解析日期字符串

我需要将下面提到的日期字符串解析为std日期格式。 在ruby中是否有内置函数可以解析类似的东西, 2011年12月9日至2011-12-09

在Ruby on Rails 3中制作通用模型时出现的问题

我正在尝试制作一个“通用模型”,以便它可以连接到任何数据库的任何表。 首先,我创建了这个连接到另一个指定数据库的类(不使用模式) D b class Db “mysql2”, :host => “localhost”, :username => “root”, :password => “”, :database => “another_database”, :port => 3306, :encoding => “utf8” ) rescue ActiveRecord::ConnectionNotEstablished @error = “Could not connect to database. The connection was not established” could_connect = false rescue Mysql2::Error @error = “Could not connect to database using MySQL2” could_connect […]

在端口80上运行Sinatra

我安装了Sinatra并且它可以工作,但它默认使用端口4567。 我希望它在端口80上运行。 为了让它在端口80上工作,我尝试了这个: require ‘rubygems’ require ‘rack/handler/webrick’ require ‘sinatra’ Sinatra::Application.default_options.merge!( :run => false, :env => :production, :port => 80 ) get ‘/’ do “Hello World” end 但我得到这个错误: $ ruby -rubygems index.rb index.rb:5:in `’: undefined method `default_options’ for Sinatra::Application:Class (NoMethodError) 知道发生了什么事吗?

Rails和Javascript minifier和聚合器

我正在开始一个新的rails项目,是否有任何我可以使用的rails插件将缩小我的javascript并将其合并为1个文件? 我想可能会有一个rake任务。 在铁轨中可以使用什么?

包装Ruby函数

我希望能够完全透明地包装任何Ruby proc(包括我自己没有编写源代码的那些),并记录它的执行时间。 my_proc 也就是说,我想创建一个调用my_proc保留的proc 上下文/接收者 争论 块。 并在打电话时打印出执行时间。 例如: my_proc = proc { |*args, &block| p self: self, args: args, block: block } Object.new.instance_eval &my_proc #=> { # :self=>#, # :args=>[#], # :block=>nil # } Object.instance_exec ‘5’, &my_proc #=> { # :self=>Object, # :args=>[“5”], # :block=>nil # } my_proc.call(1, 2) { } #=> { # […]

Proc.arity与Lambda.arity

为什么proc和lambda为arity返回不同的值? 例如 proc { |x = 0| }.arity #=> 0 lambda { |a = 0| }.arity #=> -1 proc { |x=0, y| }.arity #=> 1 lambda { |x=0, y| }.arity #=> -2 请参阅: http : //www.ruby-doc.org/core-2.0/Proc.html#method-i-arity

实例变量inheritance

有人可以解释一个类如何访问其超类的实例变量以及它不是如何inheritance? 我在谈论’Ruby Programming Language’和示例 class Point def initialize(x,y) # Initialize method @x,@y = x, y # Sets initial values for instance variables end end class Point3D “(1, 2, 3)” 如果不inheritance,类Point3D如何访问to_s x和y ? 这本书说: “它们有时似乎是inheritance的原因是实例变量是由首先为它们赋值的方法创建的,而这些方法通常是inheritance或链接的。” 但我无法弄清楚它的真正含义。