我的应用程序是一个表单生成器:定义表单,然后以通常的CRUD方式呈现激活的表单。激活表单的过程触发FormManager
创建主Form对象的子类(我使用ActiveRecord
中的STI创建type
的子类,使用Object.const_set()
)。活性形式可以停用,这涉及到杀死子类定义(使用Object.const_send(:remove...)
)如何创建应用程序范围对象
我只需要 FormManager
我的应用程序对象。什么是最好的方式去做这件事?我目前使用的一类变量ApplicationController
实现这个...它的工作原理,但似乎有点笨重:
require 'lib/form_manager.rb'
class ApplicationController < ActionController::Base
helper :all # include all helpers, all the time
attr_reader :registry
protect_from_forgery
@@registry = FormManager.new
end
我运行红宝石1.8.7,轨2.3.11发展模式 - 我是看到这只是因为我处于开发模式?
你可能想让你的F ormManager是一个单例。 http://dalibornasevic.com/posts/9-ruby-singleton-pattern-again – Pavling
@Pavling:为什么评论而不是答案?我会给你+1,因为这是个好主意,但有评论我不能给你点 – MBO
@Pavling,谢谢你,非常有用的文章 – smcphill