小编evf*_*qcg的帖子

ActiveRecord连接警告.(数据库连接不会自动关闭)

我正在尝试用Sinatra和ActiveRecord(3.2.3)创建一个小应用程序.

这是我的主文件的样子:

require "sinatra"
require "sinatra/reloader"
require "active_record"
...

ActiveRecord::Base.establish_connection(
  adapter:  'sqlite3',
  database: 'db.sqlite3',
  host:     'localhost',
)

class Post < ActiveRecord::Base
  ...
end

get('/') { ... }
get('/posts') { ... }
...
Run Code Online (Sandbox Code Playgroud)

它有效,但有时我会在控制台中收到警告:

弃用警告:数据库连接不会自动关闭,请通过调用连接关闭线程末尾的数据库close连接.例如:ActiveRecord :: Base.connection.close'

发生警告时,页面刷新需要很长时间.我不明白我应该在哪里关闭连接.我试图放在 ActiveRecord::Base.connection.close文件的底部,但它没有帮助.

更新:

我忘了提到我还使用来自sinatra-contrib gem的sinatra/reloader插件来查看效果,而无需重新启动服务器.

require "sinatra/reloader"
Run Code Online (Sandbox Code Playgroud)

如果我发表评论,那么问题就会消失.但无论如何,我想知道如何在不禁用重新加载器的情况下解决问题.

ruby activerecord sinatra

10
推荐指数
2
解决办法
6894
查看次数

如何在代码中触发事件stdin.on("data",[callback])?

请考虑以下示例

process.stdin.resume();
process.stdin.on("data", function(data) {
  console.log("recieved " + data)
})

process.stdin.write("foo\n")
process.stdin.write("bar\n")
Run Code Online (Sandbox Code Playgroud)

当我输入something终端时,我明白了

 received something
Run Code Online (Sandbox Code Playgroud)

为什么不以同样的方式进行工作foobar我先前发送使用stdin.write

例如,如何stdin.on("data)在代码中触发此事件()?我应该process.stdin.write这样做,但我只是得到相同的输出.

node.js

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

在Rails中路由.URL中的点

to_paramCategory模型中覆盖了方法

def to_param
  name
end
Run Code Online (Sandbox Code Playgroud)

routes.rb

get '/:id' => 'categories#show', :as => :category
Run Code Online (Sandbox Code Playgroud)

name参数不包含任何点(foobar)时,一切正常,但是当它(f.o.o.b.a.r)时,我得到一个错误No route matches [GET].所以我的问题是:是否可以在路由中使用点作为参数名称的一部分?或者我可以做些什么来完成这个目的,也许是一些钩子或什么的.任何帮助表示赞赏.

routes ruby-on-rails rails-routing ruby-on-rails-3

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

删除所有非单词字符的简单方法

我想用最简单的方法从字符串中删除所有字符.例如,从"a,sd3 31ds""asdds" 我的CAD做这样的事情:

"a,sd3 31ds".gsub(/\W/, "").gsub(/\d/,"")
# => "asdds"
Run Code Online (Sandbox Code Playgroud)

但它看起来有点尴尬.也许有可能将这些rexegs合并为一个?

ruby regex

7
推荐指数
3
解决办法
7129
查看次数

在check_box_tag中生成自定义属性

我想生成带有自定义html属性的复选框(以后使用UJS).这是我的观看代码

<%= check_box_tag "data-toggle-completed" => "" %>
Run Code Online (Sandbox Code Playgroud)

它给了我

<input id="__data-toggle-completed______" name="{&quot;data-toggle-completed&quot;=&gt;&quot;&quot;}" type="checkbox" value="1">
Run Code Online (Sandbox Code Playgroud)

但我想要

  <input type="checkbox" data-toggle-completed="">
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

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

node.js等待响应

关于节点和nob-blocking IO的知识非常有限,请原谅我,如果我的问题太天真了.

为了在响应主体中返回所需信息,我需要

  • 拨打第三方API
  • 等待回应
  • 添加一些修改并返回JSON响应和我从API获得的信息.

我的问题是......我怎么能等待回复?或者只有当我收到来自API的响应时才能将信息发送到客户端(据我所知,在这种情况下连接应该是双向的,这意味着我将无法使用HTTP这样做).

而另一个问题.如果一个请求等待来自API的响应,这是否意味着其他用户也将被迫等待(因为节点是单线程的),直到我将线程/进程的数量从1增加到N?

node.js

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

在PostgreSQL 9.1中更改编码

我有以下数据库

sudo -u postgres psql -c "\list"

                             List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges   
-----------+----------+----------+---------+-------+-----------------------
 postgres  | postgres | LATIN1   | en_US   | en_US | 
 template0 | postgres | LATIN1   | en_US   | en_US | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | LATIN1   | en_US   | en_US | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
(3 rows)
Run Code Online (Sandbox Code Playgroud)

我怎样才能改变编码从LATIN1到UTF8数据库template1template0

database postgresql encoding

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

Heroku找不到本地的npm包

我的回购中包含一个本地npm包(node_modules由于其超过200mb的大小,我没有将整个包含在我的仓库中,只有我必须修改的特定包才能满足我的需求).

package.json,本地包声明如下所示:

dependencies : { 
  local_package: "./my_local_package"
  ...
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误

 npm ERR! enoent ENOENT: no such file or directory, open 
 '/app/tmp/cache/my_local_package'
Run Code Online (Sandbox Code Playgroud)

我不确定/app/tmp/cache我的回购所在的地方是否存在,如果不是我应该改变它的地方.

节点v4.2.1,npm v2.14.7

heroku node.js npm

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

Ruby 大数组和内存

我创建了一个大数组a,其内存增长到约 500 MB:

a = []

t = Thread.new do 
  loop do
    sleep 1
    print "#{a.size} "
  end
end

5_000_000.times do
  a << [rand(36**10).to_s(36)]
end

puts "\n size is #{a.size}"
a = []

t.join
Run Code Online (Sandbox Code Playgroud)

之后,我“清除”了a,但直到我终止了进程,分配的内存才改变。我是否需要做一些特殊的事情才能a从内存中删除所有这些分配给的数据?

ruby memory memory-management

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

构造一个介于开始日期和结束日期之间的日期数组。(d3.js)

例如,我有startend

start = new Date(2013, 2, 28)
end   = new Date(2013, 3, 2)
Run Code Online (Sandbox Code Playgroud)

我怎么能从这个数组中得到这样的

[new Date(2013, 2, 28),
 new Date(2013, 2, 29),
 new Date(2013, 2, 30),
 new Date(2013, 2, 31),
 new Date(2013, 3, 1),
 new Date(2013, 3, 2)]
Run Code Online (Sandbox Code Playgroud)

我目前正在阅读有关Time-Scales 的文档,但仍然无法理解如何使用它们来实现这种效果。(或者,也许有更好的方法来做到这一点,如果是这样,我很高兴知道)

javascript d3.js

5
推荐指数
2
解决办法
3349
查看次数