小编Sim*_*ano的帖子

扩展ActiveRecord :: Base

我正在尝试向ActiveRecord添加一些自定义方法.我想为模型的每个字段添加一个*_after*_before范围,date以便我可以这样做:

User.created_at_after(DateTime.now - 3.days).created_at_before(DateTime.now)
Run Code Online (Sandbox Code Playgroud)

我按照这里解释的解决方案Rails扩展了ActiveRecord :: Base但是当我执行rails控制台并尝试调用方法时出现undefined method错误.

这是我的代码:

# config/initializers/active_record_date_extension.rb
require "active_record_date_extension"

# lib/active_record_date_extension.rb
module ActiveRecordDateExtension
  extend ActiveSupport::Concern

  included do |base|
    base.columns_hash.each do |column_name,column|
      if ["datetime","date"].include? column.type
        base.define_method("#{column_name}_after") do |date|
          where("#{column_name} > ?", date)
        end
        base.define_method("#{column_name}_before") do |date|
          where("#{column_name} < ?", date)
        end
      end
    end
  end
end
Rails.application.eager_load!

ActiveRecord::Base.descendants.each do |model|
  model.send(:include, ActiveRecordDateExtension)
end
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

ruby activerecord metaprogramming ruby-on-rails ruby-on-rails-4

9
推荐指数
1
解决办法
900
查看次数

包含优化脚本时,请求的资源上不存在“Access-Control-Allow-Origin”标头

我在http://www.makeitreal.camp/ 中优化使用,但是当我打开浏览器控制台时,我看到了这个错误:

XMLHttpRequest cannot load http://app.optimizely.com/account/snippet_installed?project_id=3129750879&wxhr=true.
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://www.makeitreal.camp' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

似乎一切正常,因为优化的诊断说“您的实验似乎已正确实施。 ”但我想确保此错误不会影响实验。

我怎样才能避免这个错误?

cors optimizely

5
推荐指数
0
解决办法
312
查看次数