ruby外化SQL模块

pil*_*row 5 ruby sql external

对于Ruby程序,对于将SQL查询保留在应用程序外部的模块的任何建议?我希望避免硬编码SQL查询,并可能在一组程序中支持多个SQL后端,这些程序可以进行直接SQL查询(也就是说,不通过ORM调解).

Hyopthetically:

# Production system is pg, dev environment is sqlite
sql_book = What::Module::Here.load( a_file,
                                    ENV['DEVEL'] ? 'PostgreSQL' : 'SQLite3' )

# Okay, now get all Widget IDs
r = db_handle.execute( :load_all_widget_ids )
Run Code Online (Sandbox Code Playgroud)

在perl我可能会使用Data::Phrasebook::SQL或更具异国情调的东西CAM::SQLManager.

And*_*oni 4

Sequel 比 ActiveRecord 和 DataMapper 等其他 ORM 更轻、更灵活:

http://sequel.rubyforge.org/

或者您可以使用 Ruby DBI:

https://github.com/RDBI/rdbi (已编辑)

也许您需要编写一些层来根据您的要求从外部文件读取查询。