小编abb*_*jam的帖子

覆盖现有的Heroku应用程序

我有一个Sinatra应用程序,托管在Heroku上.最近,我一直在从不同的文件夹开发相同的应用程序.它不是一个分支,它只是一个内容相同但代码不同的并行app /目录.我想将这个新应用程序推送到Heroku,覆盖当前存在的应用程序.我不想在本地合并这两个,只是从保持旧的继续.什么是适当的命令序列?我对运行有疑问heroku create,因为这将导致一个新的应用程序.谢谢!

deployment overwrite heroku

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

Sinatra错误(bundler:无法加载命令:rackup)

在将模块化Sinatra应用程序部署到Heroku时,我不断收到此错误:

bundler: failed to load command: rackup (/app/vendor/bundle/ruby/2.4.0/bin/rackup)

我试过调整我的config.ru和我的Procfile,没有成功.以下是config.ru的内容:

$LOAD_PATH.unshift(::File.expand_path('lib', ::File.dirname(__FILE__)))

require_relative 'lib/app'
run Tir::App
Run Code Online (Sandbox Code Playgroud)

Procfile:

web: bundle exec rackup config.ru -p $PORT
Run Code Online (Sandbox Code Playgroud)

LIB/app.rb:

require 'sinatra/base'
module Tir
 class App < Sinatra::Base
  # code
 end
end 
Run Code Online (Sandbox Code Playgroud)

请指出我正确的方向.

PS.我可以部署应用程序,但在尝试使用Pony gem发送电子邮件时会出现上述错误.

编辑20.07.2018: 我已经调试了这个问题并找到导致崩溃的线路:

https://gist.github.com/abbottjam/248edfd50f094f99b3bf5b1f995fd290#file-static-rb-L15

错误消息现在说:

内部服务器错误:没有将Array隐式转换为String

所以它必须是configure_options下面方法中的代码块.仍然不知道数组 - >字符串转换应该在哪里发生.谢谢.

config heroku sinatra rackup procfile

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

麻烦在Sublime Text 2中应用苏打主题

我已经使用Sublime Text 2中的Package Control安装了Soda Theme,然后通过Preferences - > Settings - User激活它.但它没有得到应用.相反,我的主题现在是Solarized,它在我的Preferences.sublime-settings文件(第3行)的顶部声明:

当我在控制台中查询主题时,输出是正确的:

>>> view.settings().get('theme')
u'Soda Light.sublime-theme'
Run Code Online (Sandbox Code Playgroud)

这也是正确的:

>>> view.settings().get('color_scheme')
u'Packages/Color Scheme - Default/Solarized (Light).tmTheme'
Run Code Online (Sandbox Code Playgroud)

为什么我看到Solarized主题而不是Soda?

谢谢!

themes soda sublimetext2

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

Sinatra:Hash的未定义方法字节大小

我正在创建一个Sinatra应用程序,它采用上传的CSV文件并将其内容放入哈希值.当我在app.rb中引用此哈希时,如下所示:

hash = extract_values(path_to_filename)

我一直收到此错误消息:

用于Hash的未定义方法`bytesize':0x007fc5e28f2b90 #object_id

file:utils.rb位置:bytesize行:335

我在某处读到这是一个Webrick问题.我切换到Thin,错误是一样的.

我的哈希/ CSV文件的大小非常小,所以它不是问题.

我正在使用ruby 1.9.3p374.

谢谢!

ruby hash thin webrick sinatra

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

使用不同的编码和库解析CSV文件

尽管有关主题的SO线程很多,但我在解析CSV方面遇到了麻烦.这是从Adwords关键字规划师下载的.csv文件.以前,Adwords可以选择将数据导出为"普通CSV"(可以使用Ruby CSV库进行解析),现在选项可以是Adwords CSV或Excel CSV.这些格式中的两个都会导致此问题(由终端会话说明):

file = File.open('public/uploads/testfile.csv')
 => #<File:public/uploads/testfile.csv> 

file.read.encoding
 => #<Encoding:UTF-8> 

require 'csv'
 => true 

CSV.foreach(file) { |row| puts row }
ArgumentError: invalid byte sequence in UTF-8
Run Code Online (Sandbox Code Playgroud)

让我们改变编码,看看是否有帮助:

file.close
 => nil 

file = File.open("public/uploads/testfile.csv", "r:ISO-8859-1")
 => #<File:public/uploads/testfile.csv> 

file.read.encoding 
=> #<Encoding:ISO-8859-1> 

CSV.foreach(file) { |row| puts row }
ArgumentError: invalid byte sequence in UTF-8
Run Code Online (Sandbox Code Playgroud)

让我们尝试使用不同的CSV库:

require 'smarter_csv'
 => true 

file.close
 => nil 

file = SmarterCSV.process('public/uploads/testfile.csv')
ArgumentError: invalid byte sequence in UTF-8
Run Code Online (Sandbox Code Playgroud)

这是一个不赢的局面吗?我是否必须滚动自己的CSV解析器?

我正在使用Ruby 1.9.3p374.谢谢!

更新1:

使用评论中的建议,这是当前版本:

file_contents = File.open("public/uploads/new-format/testfile-adwords.csv", 'rb').read

require …
Run Code Online (Sandbox Code Playgroud)

ruby csv parsing google-adwords

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

Ruby在一个方法中获取和设置

我想知道Ruby中的规范方法是什么,以创建自定义setter和getter方法.通常情况下,我会这样做,attr_accessor但我是在创建DSL的背景下.在DSL中,setter像这样被调用(使用=符号将创建局部变量):

work do
 duration 15
 priority 5
end
Run Code Online (Sandbox Code Playgroud)

因此,它们必须像这样实现:

def duration(dur)
 @duration = dur
end
Run Code Online (Sandbox Code Playgroud)

然而,这使得实现getter有点棘手:创建一个具有相同名称但没有参数的方法只会覆盖setter.

所以我编写了自定义方法,同时进行设置和获取:

def duration(dur=nil)
 return @duration = dur if dur
 return @duration if @duration
 raise AttributeNotDefinedException, "Attribute '#{__method__}' hasn't been set"
end
Run Code Online (Sandbox Code Playgroud)

这是一个很好的方法吗?以下是测试用例的要点:

Ruby Custom Getters&Setters

谢谢!

ruby getter-setter

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

SASS编译空CSS文件?

我正在尝试将这小块SCSS编译为CSS:

$font-size: 16px;
$em: $font-size / 1em;

$column: 48px;
$gutter: 24px;

 $cols1: ( 1 * ($column + $gutter) - $gutter) / $em;
 $cols2: ( 2 * ($column + $gutter) - $gutter) / $em;
 $cols3: ( 3 * ($column + $gutter) - $gutter) / $em;
 $cols4: ( 4 * ($column + $gutter) - $gutter) / $em;
 $cols5: ( 5 * ($column + $gutter) - $gutter) / $em;
 $cols6: ( 6 * ($column + $gutter) - $gutter) / $em;
 $cols7: ( 7 …
Run Code Online (Sandbox Code Playgroud)

css sass

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