【问题标题】:Name error uninitialized constant module rails命名错误未初始化常量模块rails
【发布时间】:2016-02-15 04:17:39
【问题描述】:

我有一个rails 应用程序,其中/app/adapters/UDB/ 文件夹中有模块。模块未加载。我在application.rb中添加了以下内容

config.autoload_paths += Dir["#{config.root}/app/adapters/**/*"]

我正在从模型文件/models/userinvite.rb调用模块

   def update_cassandra
    ypusers = UDB::YpRewards.new.ypusers
    ypusers.execute("UPDATE invitation_backlog SET invitation_code = '#{invitation_code}', invitation_sent_date = #{invitation_sent_date.to_i * 1000}, invited_by = '#{invited_by}' WHERE email_address = '#{email}'")
   end

/app/adapters/UDB/yp_rewards.rb

   module UDB
   class YpRewards
     def initialize

     end
     def ypusers
        @ypusers ||= UDB::Connection.new.connection.connect('ypusers')
     end
   ...

请帮我解决。

【问题讨论】:

    标签: ruby-on-rails ruby uninitialized-constant


    【解决方案1】:

    我认为问题在于模块名称。

    您的模块名称是 UDB,然后您可以通过按照 rails 命名约定(camelcasing)以小写字母指定其名称来加载此模块

     config.autoload_paths += %W( #{config.root}/app/adapters/u_d_b)
    

    【讨论】:

      【解决方案2】:

      尝试在您的 UserInvite 模型中包含该模块,

      include UDB
      

      This is a good site to know more about the placement and usage of modules.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-03
        • 2016-07-15
        相关资源
        最近更新 更多