标签: ruby

Ruby Exceptions - 为什么"else"?

我试图理解Ruby中的异常,但我有点困惑.我正在使用的教程说,如果发生的异常与rescue语句识别的任何异常都不匹配,您可以使用"else"来捕获它:

begin  
# -  
rescue OneTypeOfException  
# -  
rescue AnotherTypeOfException  
# -  
else  
# Other exceptions
ensure
# Always will be executed
end
Run Code Online (Sandbox Code Playgroud)

但是,我在后面的教程"救援"中也看到了没有指定的异常:

begin
    file = open("/unexistant_file")
    if file
         puts "File opened successfully"
    end
rescue
    file = STDIN
end
print file, "==", STDIN, "\n"
Run Code Online (Sandbox Code Playgroud)

如果你能做到这一点,那么我是否需要使用其他?或者我可以像这样在最后使用通用救援?

begin  
# -  
rescue OneTypeOfException  
# -  
rescue AnotherTypeOfException  
# -  
rescue
# Other exceptions
ensure
# Always will be executed
end
Run Code Online (Sandbox Code Playgroud)

ruby exception-handling

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

Rails - 如何在代码中检查开发人员模式或生产模式

我正在做一个rails项目,我想知道如何检查我是在代码中以开发人员模式还是生产模式运行?

谢谢

ruby ruby-on-rails ruby-on-rails-3

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

如何用简单的形式定义动作?

我试图在admin /摄影师控制器中定义动作"savenew".

我试过这个:

<%= simple_form_for(:photographer_savenew, :action => 'savenew', :id  => params[:id],  :multipart => true ) do |f| %>
Run Code Online (Sandbox Code Playgroud)

但表格中的行动仍然是: /admin/photographers

它应该是: /admin/photographers/savenew

ruby ruby-on-rails ruby-on-rails-3 simple-form

50
推荐指数
1
解决办法
8万
查看次数

How do you say在Ruby中不等于?

这是我在我的程序中尝试做的更简单的例子,但是类似的想法.在if语句中我怎么说说不等于?

是对的!=吗?

def test
  vara = 1
  varb = 2
  if vara == 1 && varb != 3
    puts "correct"
  else
    puts "false"
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby syntax equals

50
推荐指数
1
解决办法
11万
查看次数

如何在Ruby中创建对象的深层副本?

我做了一些搜索,发现了一些关于创建深度复制操作符的不同方法和帖子.

是否有一种快速简便的(内置)方式来深入复制Ruby中的对象?字段不是数组或散列.

在Ruby 1.9.2中工作.

ruby copy ruby-on-rails object deep-copy

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

Ruby rails - 从数据库中只选择几列

在rails中构造sql查询以仅从数据库中选择某些列的方式是什么,我有一些大数据字段,我希望避免从连续的定期ajax调用中加载.不必要地阅读是资源消耗和缓慢.

@itemlist = Item.find(:all, :conditions => { .... } ) #this select all columns 
Run Code Online (Sandbox Code Playgroud)

我正在寻找SELECT name, address FROM users;而不是SELECT * FROM users;

ruby ruby-on-rails ruby-on-rails-3 rails-activerecord

50
推荐指数
5
解决办法
6万
查看次数

ide sublime2如何查找方法定义

我正在使用Sublime 2进行Ruby On Rails编程.我需要能够单击方法名称并跳转到定​​义方法的类.有许多具有类似功能的IDE ......

ruby ruby-on-rails sublimetext

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

如何将哈希键从`Symbol`s更改为`String`s?

我正在使用Ruby on Rails 3.2.2,我想"轻松"/"快速"地将散列键从Symbols 更改为Strings.也就是说,从{:one => "Value 1", :two => "Value 2", ...}{"one" => "Value 1", "two" => "Value 2", ...}.

如何通过尽可能少地使用代码来实现?

ruby hash ruby-on-rails ruby-on-rails-3

50
推荐指数
5
解决办法
4万
查看次数

Ruby - Array#<<和Array#push之间的区别

通过检查Ruby 1.9.3的文档,Array#<<和Array#push被设计为实现将元素附加到当前数组的末尾.但是,两者之间似乎存在微妙的差异.

我遇到的是*运算符可用于将整个其他数组的内容追加到当前数组,但只能使用#push.

a = [1,2,3]
b = [4,5,6]

a.push *b
=> [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)

尝试使用#<<代替它会产生各种错误,具体取决于它是否与点运算符和/或括号一起使用.

为什么#<<不像#push那样工作?一个人实际上不是另一个的别名吗?

ruby arrays append

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

Ruby CSV - 获取当前行/行号

我正在尝试弄清楚如何从Ruby CSV获取当前行/行号.这是我的代码:

options = {:encoding => 'UTF-8', :skip_blanks => true}
CSV.foreach("data.csv", options, ) do |row, i|
   puts i
end
Run Code Online (Sandbox Code Playgroud)

但这似乎没有按预期工作.有没有办法做到这一点?

ruby csv

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