Today's the day

向软件大牛炫耀我会焊单片机,向硬件大牛炫耀我会写 Rails,向软硬件大牛炫耀我生物,向软硬件生物大牛炫耀我会折腾期货 -_-bbb

在插件中添加 Controller

原来以为,通过插件添加新的 Controller 很难,其实非常简单,只要建个 xxx.controller.rb 文件,然后在里面按照普通的方式定义这个 Controller:

  1. class XxxController < ActionController::Base
  2.    
  3.     ....
  4.  
  5. end

然后在插件的 init.rb 里 require 这个文件就可以了……

再按照自己喜欢的格式添加个 route:

  1. class ActionController::Routing::RouteSet
  2.   unless (instance_methods.include?('draw_with_xxx'))
  3.     class_eval <<-"end_eval", __FILE__, __LINE__
  4.       alias draw_without_xxx draw
  5.       def draw_with_xxx
  6.         draw_without_xxx do |map|
  7.           map.connect '/xxx/do_xxx', :controller => 'xxx', :action => 'do_xxx'
  8.           yield map
  9.         end
  10.       end
  11.       alias draw draw_with_xxx
  12.     end_eval
  13.   end
  14. end

搞定收工~