我知道模型不应该知道会话数据,但我需要访问模型中定义的method_missing中的一小部分状态信息。 method_missing捕获的方法由表单助手调用,即:
client_medias/new.haml:
f.text_field :new_display_name
client_media.rb:
has_many :custom_properties, :as => :extensible
这里'new_display_name'是通过多态关联定义的自定义属性键。我需要知道上下文(在我的情况下由控制器中可访问的current_app方法提供)来获取不同的自定义属性键的集合,我将其映射到method_missing中的动态方法定义。
有什么想法吗?我查看了Thread.current,现在倾向于使用它。
答案 0 :(得分:0)
我们遇到了类似的问题,我们在一个应用程序中处理多个mandant。在我们的例子中,上下文是强制性的,通过用户加载站点的顶级域来识别。
我们的方法是使用I18n中的逻辑来提供我们可以在应用程序的每个部分中访问的“单例”,就像I18n.locale
使用Thread.current
一样。
作为起点,看看sven fuchs的实现https://github.com/svenfuchs/i18n/blob/master/lib/i18n.rb