Console Snacks[摘自Advanced Rails Recipes]

上周把Advanced Rails Recipes扫了一遍,受益匪浅,尤其是关于script/console那一段,都是之前没试过的,呵呵,做个摘录。

1. Write Console Methods

在~/.irbrc定义ActvieRecord::Base.connection.select_all方法

# ~/.railsrc
def sql(query)
  ActiveRecord::Base.connection.select_all(query)
end
# ~/.irbrc
if ENV['RAILS_ENV']
  load File.dirname(__FILE__) + '/.railsrc'
end

这样就可以在直接在script/console下面执行sql查询

$ script/console
>> sql 'show databases'

2. Log to the console

ActiveRecord Logger

# ~/.railsrc
def loud_logger
  set_logger_to Logger.new(STDOUT)
end

def quiet_logger
  set_logger_to nil
end

def set_logger_to(logger)
  ActiveRecord::Base.logger = logger
  ActiveRecord::Base.clear_active_connections!
end

ActionPack Logger

# ~/.railsrc
require 'logger'
Object.const_set(:RAILS_DEFAULT_LOGGER, Logger.new(STDOUT))

3. Play in the Sandbox

使用sandbox参数来启动script/console

script/console --sandbox

这样所有的数据库修改都会在退出console时被恢复

4. Access Helpers

直接调用helper方法

helper.pluralize(3, 'blind mouse')

调用自定义的helper方法

helper.extends BlogsHelper
helper.archive_dates

Posted in  rails


blog comments powered by Disqus
Fork me on GitHub