在插件中添加 Controller
原来以为,通过插件添加新的 Controller 很难,其实非常简单,只要建个 xxx.controller.rb 文件,然后在里面按照普通的方式定义这个 Controller:
-
class XxxController < ActionController::Base
-
-
....
-
-
end
然后在插件的 init.rb 里 require 这个文件就可以了……
再按照自己喜欢的格式添加个 route:
-
class ActionController::Routing::RouteSet
-
unless (instance_methods.include?('draw_with_xxx'))
-
class_eval <<-"end_eval", __FILE__, __LINE__
-
alias draw_without_xxx draw
-
def draw_with_xxx
-
draw_without_xxx do |map|
-
map.connect '/xxx/do_xxx', :controller => 'xxx', :action => 'do_xxx'
-
yield map
-
end
-
end
-
alias draw draw_with_xxx
-
end_eval
-
end
-
end
搞定收工~