标签: ruby

如何在rails中对destroy进行"验证"

在破坏一个宁静的资源时,我想在我允许销毁操作继续之前保证一些东西?基本上,如果我注意到这样做会将数据库置于无效状态,我希望能够停止销毁操作吗?在销毁操作上没有验证回调,那么如何"验证"是否应该接受销毁操作?

ruby ruby-on-rails callback

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

最好的红宝石成语为"零或零"

我正在寻找一种简洁的方法来检查一个值,看它是零还是零.目前我正在做的事情如下:

if (!val || val == 0)
  # Is nil or zero
end
Run Code Online (Sandbox Code Playgroud)

但这看起来很笨拙.

ruby null design-patterns idioms

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

雷克到底是什么人?

简单来说,Rake做什么?它有什么用途?我知道它是一个构建工具,但我看起来更详细一点.(对于一个傻瓜.)

ruby rake ruby-on-rails

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

Rails Active Record查找(:all,:order =>)问题

我似乎无法使用ActiveRecord :: Base.find选项:一次订购多个列.

例如,我有一个带有日期和参加列的"显示"模型.

如果我运行以下代码:

@shows = Show.find(:all, :order => "date")
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

[#<Show id: 7, date: "2009-04-18", attending: 2>, 
 #<Show id: 1, date: "2009-04-18", attending: 78>, 
 #<Show id: 2, date: "2009-04-19", attending: 91>, 
 #<Show id: 3, date: "2009-04-20", attending: 16>,
 #<Show id: 4, date: "2009-04-21", attending: 136>]
Run Code Online (Sandbox Code Playgroud)

如果我运行以下代码:

@shows = Show.find(:all, :order => "attending DESC")

[#<Show id: 4, date: "2009-04-21", attending: 136>,
 #<Show id: 2, date: "2009-04-19", attending: 91>,
 #<Show id: 1, date: "2009-04-18", attending: 78>,
 #<Show id: 3, date: …
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails

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

如何在Ubuntu中使用宝石?

我最近升级到Ubuntu 9.04,我有使用宝石的问题.我使用apt-get安装了Ruby,Rubygems和Rails.该rails命令确实有效.

然后我安装了capistrano和其他宝石,比如heroku.为了做到这一点,我使用了命令:

sudo gem install XXX
Run Code Online (Sandbox Code Playgroud)

当我想使用该cap命令时,它不起作用:

bash: cap: command not found
Run Code Online (Sandbox Code Playgroud)

它与其他gem命令相同.

我有特别的事情可以让gem命令工作吗?

ruby ubuntu capistrano rubygems ruby-on-rails

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

"在红宝石中":检查来自ruby的$ PATH中是否存在程序

我的脚本严重依赖外部程序和脚本.我需要确保我需要调用的程序存在.手动,我会在命令行中使用"which"来检查.

有没有相当于File.exists?东西$PATH

(是的,我想我可以解析,%x[which scriptINeedToRun]但这不是超级优雅.

谢谢!雅尼克


更新:这是我保留的解决方案:

 def command?(command)
       system("which #{ command} > /dev/null 2>&1")
 end
Run Code Online (Sandbox Code Playgroud)

更新2:有一些新的答案 - 至少其中一些提供了更好的解决方案.

更新3:ptools gem为File类添加了"which"方法.

ruby unix path

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

删除所有已安装的Gems并重新开始

我最近开始学习Ruby和Ruby on Rails,并观看了大量的入门材料.我最近发现,我一直都会遇到错误,因为gems无法安装或者它们会被安装但是由于某种原因它们无法使用,我已经决定要删除所有内容以便再次安装Ruby并重新开始安装.一个培训视频让我用RVM安装我的大部分宝石,所以我不知道这是否会改变任何东西.

所以简而言之,我的问题是"如何摆脱RVM,Rubygems和所有已安装的Gems,以便我可以重新使用Ruby?"

编辑:我在Mac OS 10.6上

ruby macos rubygems rvm ruby-on-rails-3

76
推荐指数
6
解决办法
7万
查看次数

查找具有特定属性的最大值的Ruby数组的元素

对这个问题可能有一个非常简单的答案,但我现在不能为我的生活搞清楚.如果我有一个特定类型对象的ruby数组,并且它们都有一个特定的字段,我如何找到该字段的元素具有该字段的最大值?

ruby

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

Ruby方法的测量和基准时间

如何在Ruby中测量方法和该方法中各个语句所花费的时间.如果您看到以下方法,我想测量方法所花费的总时间以及数据库访问和redis访问所用的时间.我不想在每个声明之前写Benchmark.measure.ruby解释器是否为我们提供了任何钩子?

def foo
# code to access database
# code to access redis. 
end
Run Code Online (Sandbox Code Playgroud)

ruby time benchmarking interpreter ruby-on-rails

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

如何在Ruby中获取父级的类名

让我们假设我有一个类AB那里B继承A.如何在中打印父类名称B

class A
end

class B < A
end
Run Code Online (Sandbox Code Playgroud)

我试过的一些事情

>> B.new.class #=> B   #which is correct
>> B.new.parent  #=> Undefined method `parent`
>> B.parent   #=> Object
>> B.parent.class #=> Class
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

ruby

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