我正在使用 Rails 3 Vestal 版本 gem:https ://github.com/lailsonbm/vestal_versions
我想创建一些逻辑来确定是否/何时在模型更新上创建新版本。根据规格,我做了:
class Note < ActiveRecord::Base
versioned :if => :really_create_a_version?
def really_create_a_version
Rails.logger.debug 'really_create_a_version really_create_a_version really_create_a_version really_create_a_version - START'
record.inspect
@note = Note.find(32)
Rails.logger.debug 'really_create_a_version really_create_a_version really_create_a_version really_create_a_version - END'
end
end
但这不起作用,我收到以下错误:
NoMethodError (undefined method `really_create_a_version?' for #<Note:0x155c39a28>):
app/controllers/notes_controller.rb:124:in `update'
有什么建议或想法吗?谢谢
更新
有条件的版本创建。版本化方法现在接受 :if 和 :unless 选项。每个都需要一个表示实例方法或过程的符号,该符号将被评估以确定是否在更新后创建新版本。也可以给出包含符号和 procs 的任意组合的数组。class User < ActiveRecord::Base versioned :if => :really_create_a_version? 结尾