标签: ruby

从rmagick图像创建回形针附件

我有一个问题是找到一种方法来保存使用RMagick在回形针附件中创建的图像.

imageList = Magick::ImageList.new
imageList.new("images/apple.gif", "images/overlay.png")
...
picture = imageList.flatten_images
Run Code Online (Sandbox Code Playgroud)

我在一个有附件的模型中

has_attached_file :picture, :url => ..., :path => ...

我只想将imageList.flatten_images返回的图像保存为我模型的图片.

有谁知道如何轻松地做到这一点?

谢谢

ruby ruby-on-rails rmagick paperclip

9
推荐指数
2
解决办法
3118
查看次数

为什么我们不能在救援中访问局部变量?

局部变量

begin
  transaction  #Code inside transaction 
    object = Class.new attributes
    raise unless object.save!
  end 
rescue
  puts object.error.full_messages # Why can't we use local varible inside rescue ?
end
Run Code Online (Sandbox Code Playgroud)

实例变量

begin
  transaction  #Code inside transaction 
    @object = Class.new attributes
    raise unless @object.save!
  end 
rescue
  puts @object.error.full_messages # This is working fine.
end
Run Code Online (Sandbox Code Playgroud)

ruby

9
推荐指数
1
解决办法
8352
查看次数

为什么一些Ruby代码在2.53GHz上的运行速度是2.2GHz Core 2 Duo处理器的两倍?

(这个问题试图找出为什么程序的运行在不同的处理器上会有所不同,因此它与编程的性能方面有关.)

以下程序需要3.6秒才能在拥有2.2GHz Core 2 Duo的Macbook上运行,并且在拥有2.53GHz Core 2 Duo的Macbook Pro上运行需要1.8秒.这是为什么?

这有点奇怪...当CPU的时钟速度仅快15%时为什么速度加倍?我仔细检查了CPU计量器,以确保2个核心都没有100%使用(以便看到CPU没有忙于运行其他东西).可能是因为一个是Mac OS X Leopard,一个是Mac OS X Snow Leopard(64位)?两者都运行Ruby 1.9.2.

p RUBY_VERSION
p RUBY_DESCRIPTION if defined? RUBY_DESCRIPTION
n = 9_999_999
p n

t = 0; 1.upto(n) {|i| t += i if i%3==0 || i%5==0}; p t
Run Code Online (Sandbox Code Playgroud)

以下是该程序的输出:

在2.2GHz Core 2 Duo :( 更新: Macbook标识符:MacBook3,1,因此可能是Intel Core 2 Duo(T7300/T7500))

$ time ruby 1.rb
"1.9.2"
"ruby 1.9.2p0 (2010-08-18 revision 29036) [i386-darwin9.8.0]"
9999999
23333331666668

real  0m3.784s
user  0m3.751s
sys  0m0.021s
Run Code Online (Sandbox Code Playgroud)

2.53GHz Intel Core 2 Duo :( …

ruby performance

9
推荐指数
1
解决办法
844
查看次数

9
推荐指数
2
解决办法
221
查看次数

使用attr_accessor动态创建类属性

在Ruby中,有没有办法动态地将实例变量添加到类中?例如:

class MyClass

  def initialize
    create_attribute("name")
  end 

  def create_attribute(name)
    attr_accessor name.to_sym
  end

end

o =  MyClass.new
o.name = "Bob"
o.name
Run Code Online (Sandbox Code Playgroud)

ruby

9
推荐指数
1
解决办法
8340
查看次数

Rails 3不需要的html转义

我正在转换我的胖Rails2应用程序以在Rails3上运行.经过长时间激烈的争斗与我的老板大吼大叫,页面全部呈现为转义的html字符串.所以所有的div,图像等都是为用户字面写的.

由于某种原因,这个部分调用呈现一个转义字符串

<%= render :partial => 'something_really_interesting' %>
Run Code Online (Sandbox Code Playgroud)

正如所有Ruby on Rails应用程序一样,这条指令并没有被调用太多!那么我如何处理所有这些不通常不作为转义字符串渲染的调用?

ruby render partial ruby-on-rails-3

9
推荐指数
1
解决办法
4106
查看次数

红宝石的令人难忘的名字生成器宝石

在我自己动手并开始拔出字典之前,有没有人知道rubygem来生成适合app键的令人难忘的名字.我需要一些可说明的东西,以便我可以为用户提供唯一的电子邮件地址来提交内容.我喜欢Heroku的命名为它的应用程序作为一个例子.

floating-sky-58
simple-fog-45
Run Code Online (Sandbox Code Playgroud)

ruby gem rubygems ruby-on-rails ruby-on-rails-3

9
推荐指数
3
解决办法
4244
查看次数

什么是Python类方法的Python等价物?

在ruby中你可以这样做:

class A
    def self.a
        'A.a'
    end
end

puts A.a #-> A.a
Run Code Online (Sandbox Code Playgroud)

怎么能在python中完成.我需要一个类的方法,而不需要在类的实例上调用它.当我尝试这样做时,我收到此错误:

unbound method METHOD must be called with CLASS instance as first argument (got nothing instead)
Run Code Online (Sandbox Code Playgroud)

这是我试过的:

class A
    def a():
       return 'A.a'

print A.a()
Run Code Online (Sandbox Code Playgroud)

ruby python oop static-methods class-method

9
推荐指数
2
解决办法
4162
查看次数

Ruby:转义字符串中的特殊字符

我正在尝试编写一个与mysqli_real_escape_stringPHP 相同的方法.它需要一个字符串并逃脱任何"危险"的角色.我已经找了一种方法可以为我做这个,但我找不到一个.所以我试着自己写一个.

这就是我到目前为止(我在Rubular.com测试了模式并且它有效):

# Finds the following characters and escapes them by preceding them with a backslash. Characters: ' " . * / \ -
def escape_characters_in_string(string)
  pattern = %r{ (\'|\"|\.|\*|\/|\-|\\) }
  string.gsub(pattern, '\\\0') # <-- Trying to take the currently found match and add a \ before it I have no idea how to do that).
end
Run Code Online (Sandbox Code Playgroud)

我正在使用start_string我想改变的字符串,以及correct_string我想要start_string变成的字符串:

start_string = %("My" 'name' *is* -john- .doe. /ok?/ C:\\Drive)
correct_string = …
Run Code Online (Sandbox Code Playgroud)

ruby regex escaping

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

Rails :: inverse_of和Association扩展

我有以下设置

class Player < ActiveRecord::Base
  has_many :cards, :inverse_of => :player do
    def in_hand
      find_all_by_location('hand')
    end
  end
end

class Card < ActiveRecord::Base
  belongs_to :player, :inverse_of => :cards
end
Run Code Online (Sandbox Code Playgroud)

这意味着以下工作:

p = Player.find(:first)
c = p.cards[0]
p.score # => 2
c.player.score # => 2
p.score += 1
c.player.score # => 3
c.player.score += 2
p.score # => 5
Run Code Online (Sandbox Code Playgroud)

但以下行为方式不同:

p = Player.find(:first)
c = p.cards.in_hand[0]
p.score # => 2
c.player.score # => 2
p.score += 1
c.player.score # => 2
c.player.score += …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails associations inverse ruby-on-rails-3

9
推荐指数
2
解决办法
7451
查看次数