小编mem*_*per的帖子

杀死Heroku上的废弃控制台

我不小心以不太优雅的方式关闭了一个Heroku控制台.而现在,当我跑

heroku ps --app myapp
Run Code Online (Sandbox Code Playgroud)

表明

run.8         up for 5h           bundle exec rails console
run.9         complete for 15m    bundle exec rails console
web.1         up for 4h           bundle exec unicorn -p $PORT -c ./..
web.2         up for 4h           bundle exec unicorn -p $PORT -c ./..
worker.1      up for 4h           bundle exec rake jobs:work
Run Code Online (Sandbox Code Playgroud)

我可以用任何方式关闭run.8进程并停止支付那个一次性dyno吗?

console heroku

29
推荐指数
2
解决办法
6388
查看次数

Heroku在gzipping资产和预编译资产之间发生冲突

我已经在Heroku Cedar Stack上运行了一个Rails 3.1应用程序几个月了.我正在使用Rack :: Deflater中间件来gzip我的内容,并实现这一目标

config.middleware.insert_before ActionDispatch::Static, Rack::Deflater
Run Code Online (Sandbox Code Playgroud)

在我的staging.rb文件中.

但是,从上周开始,部署到Heroku时出现以下错误

Running: rake assets:precompile
   rake aborted!
   No such middleware to insert before: ActionDispatch::Static
Run Code Online (Sandbox Code Playgroud)

但是,运行rake中间件仍然会返回

use Rack::Cache
use Rack::Deflater
use ActionDispatch::Static
use Rack::Lock
Run Code Online (Sandbox Code Playgroud)

服务内容仍然是gzip压缩.但是,由于预编译失败,资产未编译(缩小).手动rake预编译:: asets也无济于事.

所以,我假设在预编译资产期间ActionDispatch :: Static不可用.所以我尝试在Rack :: Lock之前插入Rack :: Deflater,现在我的资产编译时没有任何错误消息,但是服务的内容不是gzip压缩的.

那么,我需要做什么,gzip和编译我的资产?我错过了什么?谢谢.

gzip ruby-on-rails heroku

7
推荐指数
2
解决办法
2992
查看次数

使用pg_search gem在Heroku上进行全文搜索

我已经使用pg_search gem为我的Rails应用程序实现了全文搜索

我创建索引的迁移看起来像

execute(<<-'eosql'.strip)
  CREATE index mytable_fts_idx
  ON mytable
  USING gin(
    (setweight(to_tsvector('english', coalesce("mytable"."name", '')), 'A') ||
    ' ' ||
    setweight(to_tsvector('english', coalesce("mytable"."description",'')), 'B')
    )
  )
eosql
Run Code Online (Sandbox Code Playgroud)

我的控制器代码看起来像

pg_search_scope :full_text_search,
:against => [
  :name, :description],
:using => {
  :tsearch => {
    :prefix => true,
    :dictionary => "english",
    :any_word => true
  }
}
Run Code Online (Sandbox Code Playgroud)

在Postgres 9.0.4上本地完全正常.但是,当我将其部署到heroku并搜索示例查询'test'时,它会引发错误

PGError: ERROR:  syntax error in tsquery: "' test ':*"

SELECT COUNT(count_column) FROM (SELECT  1 AS count_column FROM "mytable"  WHERE (((to_tsvector('english', coalesce("mytable"."name", '')) || to_tsvector('english', coalesce("mytable"."description", ''))) @@ (to_tsquery('english', …
Run Code Online (Sandbox Code Playgroud)

postgresql full-text-search ruby-on-rails heroku pg-search

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

使用Jasmine测试jQuery Hover

我应该如何使用Jasmine测试jQuery Hover动作?我的jQuery看起来像

$('.class').hover(
  function() { $('#someid').hide(); },
  function() { $('#someid').show(); }
);
Run Code Online (Sandbox Code Playgroud)

我怎么能模拟用茉莉花移动悬停动作并期望'someid'元素被隐藏并显示它应该?

javascript bdd jquery jasmine

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

Rails查看编码问题

我正在使用Ruby 2.0和Rails 3.2.14.我的观点是几个UTF-8字符,主要是货币符号,如บาท和د.إ等.我注意到了一些

(ActionView::Template::Error) "incompatible character encodings: ASCII-8BIT and UTF-8
Run Code Online (Sandbox Code Playgroud)

在我们的生产代码中,并立即尝试访问我的浏览器页面网址没有任何问题.在挖掘中,我意识到错误实际上是由BingBot和几只蜘蛛引起的.因此,当我尝试卷曲相同的网址时,我能够重现这个问题.所以,如果我尝试

curl http://localhost:3000/?x=?
Run Code Online (Sandbox Code Playgroud)

我得到视图代码中使用UTF-8符号的错误.我还意识到,如果使用HTML编码的字符串代替符号,则不会发生这种情况.但是,我更喜欢使用实际符号.

我已经尝试在environment.rb中设置Encoding.default_external = Encoding :: UTF_8,将#encoding:utf-8魔术注释添加到文件顶部,但没有帮助.

那么,为什么会出现这种错误呢?除了cookie之外,在浏览器和CURL上点击此URL有什么区别?我如何解决此问题并允许BingBot为我们的网站编制索引?谢谢.

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

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

使用Memcached/Dalli从缓存中排除图像

我最近使用Dalli gem为我的Rails应用程序实现了memcached heroku附加组件的缓存.我发现虽然部署到Heroku时,它还会缓存我的所有静态资产,包括图像,这会迅速炸毁我的memcached大小.heroku日志的样本看起来像

cache: [GET /assets/application.css] fresh
app[web.1]: cache: [GET /assets/sign-in-twitter.gif] fresh
app[web.1]: cache: [GET /assets/ajax-loader.gif] fresh
app[web.1]: cache: [GET /assets/sign-in-facebook.gif] fresh
Run Code Online (Sandbox Code Playgroud)

特别是对于索引页面,每个不同请求的缓存大小增加约5MB.这种行为是可配置的吗?我是否可以将memcached配置为仅缓存我的片段缓存而不是主动缓存每个页面中的每个图像?

memcached caching ruby-on-rails-3 dalli

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