小编Cam*_*tin的帖子

MySQL:数据截断:日期时间值不正确:'2006-10-01 02:22:44'

我通过JDBC使用MySQL更新一行时遇到以下异常:

com.mysql.jdbc.MysqlDataTruncation:数据截断:日期时间值不正确:'2006-10-01 02:22:44'

该列定义为:

' created_on_servicetimestamp NULL DEFAULT NULL'

该列上没有索引或外键.

显然,这不是数据类型的问题.我在该日期时间之前和之后都有该表中的值.我也有在上午2:22之前和之后的时间值.

mysql jdbc

13
推荐指数
2
解决办法
4万
查看次数

ElasticSearch Rails - 设置自定义分析器

我在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

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

对于完全相关的集合,Pearson相关性失败

考虑以下用户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

7
推荐指数
1
解决办法
771
查看次数

即使帖子是公开的,Facebook Graph API也会返回'false'

在我的应用程序中,大多数公共帖子在通过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(无论我使用的是应用程序访问令牌还是用户访问令牌).

facebook facebook-graph-api

6
推荐指数
1
解决办法
4834
查看次数

Rails 4 - 命名空间中的缩略词控制器给出"未初始化的常量"错误

我正在尝试在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 :: EdmsController并删除变形定义(即除了缩写之外的所有内容都相同),它的工作原理
  • 如果我把整个东西从admin命名空间移到我的应用程序的根目录(即EDMsController,通过/ edms访问),它的工作原理

值得注意的是,我在admin命名空间中有其他控制器和资源可以正常工作.

所以看起来我可以有一个首字母缩略词控制器,或命名空间中的控制器,但不是两者.

有什么建议?

ruby ruby-on-rails ruby-on-rails-4

5
推荐指数
1
解决办法
700
查看次数

有没有办法限制 ERB (Ruby) 中的变量范围?

目前我可以做:

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)

相同的结果。

ruby templates ruby-on-rails erb

4
推荐指数
1
解决办法
1317
查看次数

Rails - 通过工厂方法创建强制模型

我正在使用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)

有什么方法可以阻止这种情况吗?

ruby ruby-on-rails factory-pattern ruby-on-rails-4

3
推荐指数
1
解决办法
1184
查看次数