できた

ちょっと違うか.

(defun try-complete-abbrev (old)
  (if (expand-abbrev) t nil))

(setq hippie-expand-try-functions-list
      '(try-complete-abbrev
	try-complete-file-name
        try-expand-dabbrev))
;;(setq rails-use-mongrel nil)

(add-hook 'ruby-mode-hook
	  '(lambda ()
	     (ruby-electric-mode nil)
	     (define-key rails-minor-mode-map "\C-o" 'indent-or-complete)
	     (define-key rails-minor-mode-map (kbd "<tab>") 'indent-for-tab-command)
	     ))
(require 'rails)

Tabは普通のタブで,Ctrl-oがrails.elのタブの代わり,いつもはCtrl-oをdabbrev-expandに割り当ててるので,自然に使えると思う.

よく考えたら,define-keyはhookの外で良い.