我是Heroku的新手.
我将我的Rails应用程序上传到Heroku,并希望使用Thin而不是Webrick运行它.遵循Heroku的指南我应该web: bundle exec rails server thin -p $PORT -e $RACK_ENV
用来创建procfile.但是我总是得到回应web:: command not found
.
我错过了什么?
我正在制作"用户设置表单",并坚持使用HAML:
= form_tag('/')
- [1,2,3].each do |i|
= check_box_tag "accept#{i}"
= submit_tag
Run Code Online (Sandbox Code Playgroud)
这导致"语法错误,意外的kENSURE,期待$ end".
工作变体是
= form_tag('/')
- [1,2,3].each do |i|
= check_box_tag "accept#{i}"
= submit_tag
Run Code Online (Sandbox Code Playgroud)
结果是
<input id="accept1" name="accept1" type="checkbox" value="1" />
<input name="commit" type="submit" value="Save changes" />
<input id="accept2" name="accept2" type="checkbox" value="1" />
<input name="commit" type="submit" value="Save changes" />
<input id="accept3" name="accept3" type="checkbox" value="1" />
<input name="commit" type="submit" value="Save changes" />
<form action="/" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="tuniieYp9hgvGBMaYDjK2l3Mgjpxo9F1LPzqEF4ykHg=" /></div>
Run Code Online (Sandbox Code Playgroud)
错误:控制外部表格标签,3次提交按钮.
任何有关修复的想法都将受到赞赏.谢谢!
我安装了Heroku并设置了一个帐户,但出于某种原因,每当我尝试将应用程序推送到网站时,我都会收到此错误.
$ git push heroku master
! No such app as first_app
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
我已经检查过看到heroku看到了git
$ git remote -v
heroku git@heroku.com:first_app.git (fetch)
heroku git@heroku.com:first_app.git (push)
Run Code Online (Sandbox Code Playgroud)
如何让heroku识别我的git文件?
在铁路(3.2.3)的文档中说
在开发模式(默认情况下你正在使用它)中,Rails会根据每个浏览器请求重新加载您的应用程序,因此无需停止并重新启动Web服务器.
但显然我的应用程序开箱即用于生产模式.(我可以输入Rails.env并查看它).
为什么?
然后我转到environment.rb并添加
ENV["RAILS_ENV"] = "development"
Run Code Online (Sandbox Code Playgroud)
而且还在生产中.任何的想法?
编辑:你走了
#Load the rails application
require File.expand_path('../application', __FILE__)
# Initialize the rails application
MyAppName::Application.initialize!
ENV["RAILS_ENV"] = "development"
Run Code Online (Sandbox Code Playgroud) 我在一个Sinatra应用程序中有一个util方法,我想从我的测试中进行测试TestCase
.
问题是我不知道如何调用它,如果我只是使用app.util_method
我有错误NameError: undefined local variable or method 'util_method' for #<Sinatra::ExtendedRack:0x007fc0c43305b8>
class MyApp < Sinatra::Base
# [...] routes methods
# utils methods
def util_method
return "hi"
end
end
Run Code Online (Sandbox Code Playgroud)
require "my_app.rb"
require "test/unit"
require "rack/test"
class MyAppTest < Test::Unit::TestCase
include Rack::Test::Methods
def app
MyApp.new
end
# [...] routes methods tests
def test_util_method
assert_equal( "hi", app.util_method )
end
end
Run Code Online (Sandbox Code Playgroud) 为了避免崩溃,我指定了我的每个gem的版本号Gemfile
:
gem 'sass-rails', '~> 3.1.5'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '~> 1.0.3'
gem 'haml-rails', "~> 0.3.4"
gem 'simple_form', '~> 1.5.2'
Run Code Online (Sandbox Code Playgroud)
但至少我想知道是否有一些我没有安装过的新版本.例如,simple_form 2.0.0
已经发布.
我可以检查RubyGems上的每个gem,但是必须有一个自动工具来完成这项工作,对吧?
我正在使用最新的Sinatra,我正在Heroku上主持.有没有办法可以为/public
目录中提供的静态资产设置缓存标头?
/public
在检查已定义的任何路由之前,Sinatra提供目录中的文件,因此我不能只是cache_control
路由中的方法.
该/public
目录包含我的应用程序的CSS和JavaScript.我不希望浏览器每次都下载这些文件,因为它们不会经常更改.
我正在尝试根据https://devcenter.heroku.com/articles/heroku-postgresql#local-setup上的说明设置PostgreSQL的本地版本,以便在Heroku上使用我的Rails应用程序.
当我为不同的heroku配置grep'd时
(heroku config | grep HEROKU_POSTGRESQL)
Run Code Online (Sandbox Code Playgroud)
我收到了以下回报:
HEROKU_POSTGRESQL_AQUA_URL: postgres://mzqgqmkhlsgufo:Hk-Nu5SF6amY9mgl2n6u-Yi6U-@ec2-54-243-228-246.compute-1.amazonaws.com:5432/d8jndm2sub3lbt
HEROKU_POSTGRESQL_VIOLET_URL: postgres://nviwubpznhhgkv:siEYPLdOknBWOj1K3HePMn21DS@ec2-54-243-188-54.compute-1.amazonaws.com:5482/ddr1fm1ou7ha9s
Run Code Online (Sandbox Code Playgroud)
不同的颜色有什么意义吗?我可以更好地使用一个而不是另一个或者它们只是随机颜色?对不起,如果这是一个愚蠢的问题,但我不打算找到解决这个问题的问题.
我在Redis中有一个短信队列.假设redis中的消息是这样的:
"niño"
Run Code Online (Sandbox Code Playgroud)
(发现非标准字符).
rails app显示消息队列.当我在本地测试时(Rails 3.2.2,Ruby 1.9.3)一切都很好,但是在Heroku雪松上(Rails 3.2.2,我相信有红宝石1.9.2)我得到了臭名昭着的错误:ActionView::Template::Error (invalid byte sequence in UTF-8)
阅读并重新阅读我在网上找到的所有内容后,我仍然坚持如何解决这个问题.
任何帮助或指向正确的方向非常感谢!
编辑:
我设法找到了解决方案.我最终使用了Iconv:
string = Iconv.iconv('UTF-8', 'ISO-8859-1', message)[0]
Run Code Online (Sandbox Code Playgroud)
我发现周围的建议答案似乎都不适用于我的情况.
据我所知,link_to
用于get方法,并button_to
用于post方法.
另一方面,我被告知使用HTML5语义,<button>
用于任何类型的可点击...好吧,按钮.如果我有一个可点击的按钮,将用户发送到表单填写,我应该创建一个button_to
或一个link_to
?