我通过JDBC使用MySQL更新一行时遇到以下异常:
com.mysql.jdbc.MysqlDataTruncation:数据截断:日期时间值不正确:'2006-10-01 02:22:44'
该列定义为:
'
created_on_servicetimestamp NULL DEFAULT NULL'
该列上没有索引或外键.
显然,这不是数据类型的问题.我在该日期时间之前和之后都有该表中的值.我也有在上午2:22之前和之后的时间值.
我在Rails 4中通过elasticsearch-rails使用ElasticSearch(https://github.com/elasticsearch/elasticsearch-rails)
我有一个用户模型,带有电子邮件属性.
我正在尝试使用文档中描述的'uax_url_email'标记生成器:
class User < ActiveRecord::Base
include Elasticsearch::Model
include Elasticsearch::Model::Callbacks
settings analysis: { analyzer: { whole_email: { tokenizer: 'uax_url_email' } } } do
mappings dynamic: 'false' do
indexes :email, analyzer: 'whole_email'
end
end
end
Run Code Online (Sandbox Code Playgroud)
我按照wiki(https://github.com/elasticsearch/elasticsearch-rails/wiki)和elasticsearch-model docs(https://github.com/elasticsearch/elasticsearch-rails/wiki)中的示例进行了操作.
它不起作用.如果我直接查询elasticsearch:
curl -XGET 'localhost:9200/users/_mapping
Run Code Online (Sandbox Code Playgroud)
它返回:
{
"users": {
"mappings": {
"user": {
"properties": {
"birthdate": {
"type": "date",
"format": "dateOptionalTime"
},
"created_at": {
"type": "date",
"format": "dateOptionalTime"
},
"email": {
"type": "string"
},
"first_name": {
"type": …Run Code Online (Sandbox Code Playgroud) ruby ruby-on-rails elasticsearch ruby-on-rails-4 elasticsearch-plugin
考虑以下用户A和B对胶片评级集的Pearson相关系数的例子:
A = [2,4,4,4,4]
B = [5,4,4,4,4]
pearson(A,B) = -1
A = [5,5,5,5,5]
B = [5,5,5,5,5]
pearson(A,B) = NaN
Run Code Online (Sandbox Code Playgroud)
Pearson相关似乎被广泛用于计算协同过滤中两组之间的相似性.然而,上面的集合显示出高(甚至完美)相似性,但是输出表明集合是负相关的(或者由于div为零而遇到错误).
我最初认为这是我实施中的一个问题,但我已经对一些在线计算器进行了验证.
如果输出正确,为什么Pearson相关性被认为是这个应用的一个好选择?
recommendation-engine collaborative-filtering pearson-correlation
在我的应用程序中,大多数公共帖子在通过Graph API访问时似乎返回'false'.
示例:https://graph.facebook.com/1543370206_2215254431220?access_token = XXXXX
该帖子是公开可见的,但查询上述内容始终返回false.
根据StackOverflow上的类似问题,我尝试使用应用程序访问令牌和几个不同的oAuth 2.0用户访问令牌与offline_access,但没有成功.
我也尝试使用profileid_postid ID格式(如上所述)和postid格式(https://graph.facebook.com/2215254431220?access_token=XXXX)访问它,但没有运气.
我也在24小时后重试,以确保我没有超过任何API限制.
我已经测试了超过1,000个公开帖子(我知道它们是公开的,因为我是使用搜索方法从Graph API获得的,但我也在浏览器中做了一些随机抽样以确定).75%返回false(无论我使用的是应用程序访问令牌还是用户访问令牌).
我正在尝试在Rails 4中创建此控制器:
Admin::EDMsController
Run Code Online (Sandbox Code Playgroud)
在我的initializers/inflections.rb文件中,我已经定义了首字母缩略词:
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'EDMs'
inflect.acronym 'EDM'
end
Run Code Online (Sandbox Code Playgroud)
我的routes.rb文件有:
namespace :admin do
# ... some other resources ...
resources :edms
end
Run Code Online (Sandbox Code Playgroud)
我的控制器在app/controllers/admin/edms_controller.rb中定义如下:
class Admin::EDMsController < Admin::AdminController
end
Run Code Online (Sandbox Code Playgroud)
当我尝试访问/ admin/edms时,出现以下错误:
uninitialized constant Admin::EDMsController
Run Code Online (Sandbox Code Playgroud)
到目前为止我发现了什么:
值得注意的是,我在admin命名空间中有其他控制器和资源可以正常工作.
所以看起来我可以有一个首字母缩略词控制器,或命名空间中的控制器,但不是两者.
有什么建议?
目前我可以做:
r = ERB.new('Hi there <%= name %>')
r.result(OpenStruct.new(name: 'Joan').instance_eval{ binding })
# Outputs 'Hi there Joan'
Run Code Online (Sandbox Code Playgroud)
但我也可以这样做(在具有管理模型的 Rails 应用程序内运行):
r = ERB.new('<%= Admin.count %>')
r.result(OpenStruct.new.instance_eval{ binding })
# Outputs '10'
Run Code Online (Sandbox Code Playgroud)
换句话说,它可以在调用评估的上下文中访问我的应用程序的所有变量。
有什么方法可以将变量的范围限制为仅我在绑定中提供的内容,例如仅“名称”而没有其他内容?我想在面向用户的模板工具中使用它。
我也尝试过这个(根据另一个SO问题):
class Namespace
def initialize(hash)
hash.each do |key, value|
singleton_class.send(:define_method, key) { value }
end
end
def get_binding
binding
end
end
Run Code Online (Sandbox Code Playgroud)
相同的结果。
我正在使用Rails 4.我有一个类Cart,需要在我的应用程序中访问.
我希望使用工厂模式访问它:
class CartFactory
def self.obtain_cart_for_user(user)
...
end
end
Run Code Online (Sandbox Code Playgroud)
我需要这种方法,因为有时,我想要返回一个现有的购物车,有时会创建一个新的购物车(根据购物车的年龄,其内容,其中的产品是否仍然可用等).
这很容易.
但是,我还想确保其他未来的程序员不直接实例化购物车,或通过任何其他方式获取,包括通过模型关联,例如:
Cart.new(...)
user.carts.new(...)
Cart.find(id)
Cart.find_by_attribute(blah: blah)
Cart.where(...).first
Run Code Online (Sandbox Code Playgroud)
有什么方法可以阻止这种情况吗?