从类方法调用实例方法

时间:2010-10-05 14:50:31

标签: ruby-on-rails ruby

Controller ClientDocument。

def upload_document
  ClientDocument.upload_client_document(params)
end

Model ClientDocument。

班级方法..

def self.upload_client_document(params)
  self.new :uploaded_data => params[:Filedata],:client_id => params[:client_id]
  rename_document_name(params) # Call instance method
end

实例方法..

def rename_document_name(params)
  self.filename = "#{self.client.client_no}-#{self.filename}"
end

是否可以从类方法中调用实例方法?

在存储到数据库之前,我想重命名文件名。

解决这个问题的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

def self.upload_client_document(params)
  instance = self.new :uploaded_data => params[:Filedata],:client_id => params[:client_id]
  instance.rename_document_name(params) # Call instance method
  instance
end