ROR学习笔记(25)——rails中的initializers

2015-05-26  本文已影响153人  kamionayuki

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

重启服务器后,就可以在modelcontroller中调用这两个方法。
controller中可以写:

def mymethod
    customers = Customer.all
    send_data(customers.to_cvs)
end
上一篇下一篇

猜你喜欢

热点阅读