rails項目中的config/initializers
文件夾有很多文件,這些文件是在服務器啟動時加載的文件,所以可以利用這個特性,增加一些初始的內容。比如這樣:
要為ActiveRecord::Relation
類增加一個to_cvs
的方法,以及為ActiveRecord::Base
類增加一個to_txt
的方法。
可以在config/initializers
文件夾下新增一個 myinit.rb
文件,內容如下:
class ActiveRecord::Relation
def to_cvs
inject("") { |result,record| result += record.to_txt }
end
end
class ActiveRecord::Base
def to_txt
result = attributes
result["created_at"] = result["created_at"].strftime("%Y-%m-%d %H:%M:%S")
result["updated_at"] = result["updated_at"].strftime("%Y-%m-%d %H:%M:%S")
result.values.join(",") + "\n"
end
end
重啟服務器后,就可以在model
和controller
中調用這兩個方法。
controller中可以寫:
def mymethod
customers = Customer.all
send_data(customers.to_cvs)
end