小编Mel*_*emi的帖子

如何使用未知属性建模数据?

有哪些好方法可以对需要查询的数据进行建模,但是哪些方法无法完全预先定义?

例如...说我想模拟有关世界各国的信息.每个国家都有人口,国旗语言清单,这很容易.但是说我们也想模拟他们国家棒球队输赢记录,当然并非所有国家都有.或者,我们想跟踪他们的国王和王后血统(再次,显然不适用于大多数国家).或者,我们决定我们想要模拟平均氏族成员在一生中建立的蒙古包的数量.

无论如何,重点是,我们不会(也永远不会)知道在它袭击我们之前会发生什么.哪些方法既可扩展又可查询?

这可能是一个很好用于以文档为中心的数据库(MongoDB?),或者某些设计模式可能应用于经典的Relational数据库?

sql database-design ruby-on-rails data-modeling nosql

2
推荐指数
1
解决办法
1619
查看次数

Elasticsearch:java.lang.InternalError:无法连接到窗口服务器

试图让Elasticsearch运行并索引PDF.我不熟悉Java.什么是它抱怨的窗口服务器,我该如何解决?

Jun 13 15:57:23 server.mydomain.com java[22345] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
Exception in thread "elasticsearch[index]-pool-2-thread-1" java.lang.InternalError: Can't connect to window server - not enough permissions.
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1724)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1045)
    at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.loadLibraries(Toolkit.java:1605)
    at java.awt.Toolkit.<clinit>(Toolkit.java:1627)
    at java.awt.Color.<clinit>(Color.java:263)
    at org.apache.pdfbox.pdmodel.PDPage.<clinit>(PDPage.java:80)
    at org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:212)
    at org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:218)
    at org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:184)
    at org.apache.pdfbox.pdmodel.PDDocumentCatalog.getAllPages(PDDocumentCatalog.java:211)
    at org.apache.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:322)
    at org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:63)
    at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:140)
    at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242)
    at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242)
    at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)
    at org.elasticsearch.plugin.mapper.attachments.tika.TikaExtended.parseToString(TikaExtended.java:48) …
Run Code Online (Sandbox Code Playgroud)

java macos elasticsearch apache-tika

2
推荐指数
1
解决办法
2276
查看次数

Ruby DateTime.new混乱

我仍然对如何在Ruby中使用DateTime感到困惑.我想将GMT存储在数据库中,至少我认为我愿意.但是如何创建可用的本地化DateTime呢?

date = Date.new(2012, 11, 24)
 => #<Date: 2012-11-24 ((2456256j,0s,0n),+0s,2299161j)> 
new_appt = DateTime.new(date.year, date.month, date.day, 10, 0, 0)
 => #<DateTime: 2012-11-24T10:00:00+00:00 ((2456256j,36000s,0n),+0s,2299161j)> 
Run Code Online (Sandbox Code Playgroud)

此DateTime对象的GMT偏移量为+00:00.我希望它是-07:00或-08:00,具体取决于给定日期是否遵守夏令时.我可以添加最后一个参数(+7+8),但如何计算?

有没有办法告诉日期时区偏移是什么(或将是什么)并将其纳入DateTime.new对象,以便可以正确存储(和检索)它?

ruby datetime locale ruby-on-rails

2
推荐指数
1
解决办法
961
查看次数

Rails:将列从十进制迁移到整数后,数据会发生什么

我总是冒险破坏我的开发数据库(PostgreSQL)并重建它,但我想先问一下是否有人有经验.

理想情况下,所有数据都会被截断为整数:(例如:5.7会变为5)或者它可能会舍入值(5.7变为6)?或者它只是使所有值无效或清零,数据丢失?我认为最糟糕的结果将是不可靠的数据(5.7变为23).

这些类型的迁移是否有一般的经验法则?

class ChangeBookFromDecimalToInteger < ActiveRecord::Migration
  def self.up
   change_column :book, :price, :integer
  end

  def self.down
   change_column :book, :price, :decimal
  end
end
Run Code Online (Sandbox Code Playgroud)

migration postgresql ruby-on-rails

2
推荐指数
1
解决办法
999
查看次数

Git分支没有像我预期的那样工作

在我的项目分支中,我提交了更改:git commit -a

创建并切换到新分支: git checkout -b newbranch

试试一些东西......

意识到'东西'没有按照我认为可能的方式切换回主人:git checkout master意图从那里移动...但是意识到在newbranch中添加的一些文件仍然在TextMate中......所以...

我输入git status我仍然看到我认为我留在newbranch的所有东西列在"未跟踪文件"下

我试着:git reset --hard把我带回到最后一次提交......但是newbranch的变化仍然存在?!?

我错过了什么?

git

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

Rails:动态更改CSS属性?

我需要max-width动态更改CSS属性,具体取决于与给定模型关联的图像数量.

我怎么能在Rails 3.1中做到这一点?

(Javascript&SASS/SCSS也可供我们使用)

javascript css ruby-on-rails css3 ruby-on-rails-3

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

Rails/Actionpack:警告:已初始化常量ICS

试图启动Rails服务器并获得"警告",我不明白.谁知道这意味着什么?warning: already initialized constant ICS

这是在上下文中:

meltemi$ rails s
=> Booting WEBrick
=> Rails 3.1.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
/Users/meltemi/.rvm/gems/ruby-1.9.3-p0@summit/gems/actionpack-3.1.3/lib/action_dispatch/http/mime_type.rb:101: warning: already initialized constant ICS
[2012-01-15 12:28:34] INFO  WEBrick 1.3.1
[2012-01-15 12:28:34] INFO  ruby 1.9.3 (2011-10-30) [x86_64-darwin11.2.0]
[2012-01-15 12:28:34] INFO  WEBrick::HTTPServer#start: pid=61345 port=3000
Run Code Online (Sandbox Code Playgroud)

ruby actionpack rvm ruby-on-rails-3

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

Rails3:从Mailer中访问request.host

我试图从Rails中的Mailer 访问request.host(好吧,理想情况下host_with_port).对request.host的实际调用是在Helper中:

#/app/helpers/confirmations_helper
module ConfirmationsHelper
  def email_confirm_url(token)
    "http://#{request.host_with_port}/confirm/#{token}" # failure: undefined method
  end
end

#/app/mailers/user_mailer
class UserMailer < ActionMailer::Base
  default from: "email@domain.com"

  add_template_helper(ConfirmationsHelper) #get access to helpers/confirmations_helper.rb

  def email_confirmation(user)
    @user = user
    @url = "http://www.domain.com/"
    mail(to: user.email, subject: "Email Confirmation")
  end
end

#config/environments/development.rb
...
config.action_mailer.default_url_options = { :host => "localhost:3000" }
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

 ActionView::Template::Error:
   undefined method `host' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails actionmailer helper ruby-on-rails-3

1
推荐指数
2
解决办法
5194
查看次数

Rails:可以根据IP地址(或范围?)来限制路由

我知道这通常发生在控制器中,但我想知道是否有可能config/routes.rb限制基于特定IP(或IP范围)的路由?某种白名单,某种形式。

例如,我想将此路由限制为仅子网中的IP:

#config/routes.rb
require 'sidekiq/web'

MyApp::Application.routes.draw do
  resources :users
  ...
  mount Sidekiq::Web, at: "/sidekiq"      # <== restrict this based on IP address
  ...
end
Run Code Online (Sandbox Code Playgroud)

routing routes ruby-on-rails sidekiq

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

JQuery:Twitter Typeahead功能不匹配

我正在使用typeahead.js将产品ID分配给隐藏的html表单字段.当匹配时,这很有用:

$('.products_tt .typeahead').typeahead
    name: 'products_tt',
    prefetch: 
        url: '/products.json',
        ttl: 60 * 5e3
    template: '<p><strong>{{value}}</strong> – {{year}}</p>',
    engine: Hogan

$('.products_tt .typeahead').on "typeahead:selected typeahead:autocompleted", (e,datum) ->
    $('#disk_file_product_id').val(datum.id)
Run Code Online (Sandbox Code Playgroud)

当输入字段留空时,我清除隐藏字段:

$('.products_tt .typeahead').blur ->
    if $(this).val().length == 0
        $('#disk_file_product_id').val("")
Run Code Online (Sandbox Code Playgroud)

但是我还需要在输入字段中输入文本时清除隐藏字段,但是没有匹配.

我的Java/Coffeescript技能很弱,所以不确定如何做到这一点?!?

javascript jquery ruby-on-rails coffeescript typeahead.js

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

Guard:如何从 Guard 的控制台运行特定标签?

我在我的 RSpec 测试套件中使用了 Spork 和 Guard。我从运行中排除慢测试:

RSpec.configure do |config|
  ...
  config.filter_run_excluding slow: true
  ...
end
Run Code Online (Sandbox Code Playgroud)

然后当我需要在单独的 shell 中运行慢速测试时: rspec . --tag slow

我想知道是否有一个快捷方式可以在Guard 自动运行其测试的同一个shell 中运行慢标签?

有控制台>提示吗?在查看文档后,我发现键入 >. rspec . --tag slow有效……但这比切换到另一个外壳要冗长一些。似乎这是一个相当普遍的要求。想法?

rspec ruby-on-rails guard spork

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

在WindowsScript中将jQuery .click转换为.live'click'

这有效:

$('#products.table tr').click ->
  $(@).toggleClass('row_selected')
Run Code Online (Sandbox Code Playgroud)

这不是:

$('#products.table tr').live 'click', (event) ->
  $(@).toggleClass('row_selected')
Run Code Online (Sandbox Code Playgroud)

浏览器控制台出错:

[Error] TypeError: 'undefined' is not a function (evaluating '$('#products.table tr').live')
    ready (products.js, line 10)
    fire (jquery.js, line 3049)
    fireWith (jquery.js, line 3161)
    ready (jquery.js, line 434)
    completed (jquery.js, line 105)
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

javascript jquery ruby-on-rails click coffeescript

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

Heroku:NoMethodError:Rack::Timeout:Class 的未定义方法`timeout='

刚刚将 Rails 4.2 应用程序更新到 5.2.1,但无法将其推送到 Heroku。以下错误。我已经通过在我的 rack_timeout.rb 初始值设定项中添加以下内容来尝试这里这里推荐的内容。

Rails.application.config.middleware.insert_before Rack::Runtime, Rack::Timeout, service_timeout: 5
Run Code Online (Sandbox Code Playgroud)

但这无济于事。想法?

$ git push heroku
...
remote: -----> Installing node-v8.10.0-linux-x64
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        rake aborted!
remote:        NoMethodError: undefined method `timeout=' for Rack::Timeout:Class
remote:        /tmp/build_c66056b406a6fcdc37b9dde3124992ce/config/initializers/rack_timeout.rb:2:in `<top (required)>'
remote:        /tmp/build_c66056b406a6fcdc37b9dde3124992ce/vendor/bundle/ruby/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:281:in `load'
remote:        /tmp/build_c66056b406a6fcdc37b9dde3124992ce/vendor/bundle/ruby/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:281:in `block in load'
remote:        /tmp/build_c66056b406a6fcdc37b9dde3124992ce/vendor/bundle/ruby/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:253:in `load_dependency'
remote:        /tmp/build_c66056b406a6fcdc37b9dde3124992ce/vendor/bundle/ruby/2.4.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:281:in `load'
remote:        /tmp/build_c66056b406a6fcdc37b9dde3124992ce/vendor/bundle/ruby/2.4.0/gems/railties-5.2.1/lib/rails/engine.rb:657:in `block in load_config_initializer'
remote:        /tmp/build_c66056b406a6fcdc37b9dde3124992ce/vendor/bundle/ruby/2.4.0/gems/activesupport-5.2.1/lib/active_support/notifications.rb:170:in `instrument' …
Run Code Online (Sandbox Code Playgroud)

rack ruby-on-rails heroku asset-pipeline

0
推荐指数
1
解决办法
757
查看次数