Rails 3.1,after_update程序不接受方法参数?

时间:2011-11-17 18:43:27

标签: ruby-on-rails model

我希望这里有一些显而易见的东西,我想不出你为什么不能在after_update调用中传递方法参数的原因:

class Card < ActiveRecord::Base
  after_update :create_thumb(100)

  def create_thumb(size)
    ...

这将无法启动。如果我在方法中对大小进行硬编码就可以了。是否有一些时髦的语法可以做到这一点,还是不可能?

感谢。

2 个答案:

答案 0 :(得分:2)

您可以传入Proc并调用其中的方法:

class Card < ActiveRecord::Base
  after_update { create_thumb(100) }

  def create_thumb(size)
    ...

答案 1 :(得分:1)

您可以在方法上设置默认值,如下所示:

class Card < ActiveRecord::Base
  after_update :create_thumb

  def create_thumb(size = 100)
    ...