代码之家  ›  专栏  ›  技术社区  ›  Aymeric

同一应用程序上每个域名一个配置。如何从模型轻松访问配置值?

  •  1
  • Aymeric  · 技术社区  · 16 年前

    我运行一个有多个域名的rubyonrails网站。我在数据库中有一个“Website”表,其中存储了与每个域名相关的配置值:


    -域
    -姓名


    -等等。。。

    目前,我在应用程序控制器中的每个请求开始时(在“过滤器”之前)加载网站对象:

    @网站=Website.find_by_域(请求.host)

    问题是当我需要从模型的方法访问@website对象时。我想避免到处都要通过@website。最好的解决方案是使用类似APP_CONFIG的东西,但是每个域名都有。

    def sample_model_属性
    - - "#{@网站名称}是一个很棒的网站!”
    结束

    你会怎么做?

    1 回复  |  直到 16 年前
        1
  •  0
  •   tadman    16 年前

    model_helper 方法。

    相反,您可以在网站类上使用一种singleton方法,例如:

    class Website < ActiveRecord::Base
      cattr_accessor :current_website
    end
    

    然后您可以在控制器中执行以下操作:

    before_filter :load_current_website
    
    def load_current_website
      Website.current_website = Website.find_by_domain(request.host)
    end