我在Mac OS 10.6.8上使用Ruby 1.9.3p0(使用rvm安装).当我尝试使用GitHub上托管的应用程序模板创建一个新的Rails应用程序时,使用它(例如):
$ rails new myapp -m https://github.com/RailsApps/rails3-application-templates/raw/master/rails3-mongoid-devise-template.rb -T -O
我收到此错误消息:
/Users/me/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:799:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
据我所知,Ruby语言解释器使用OpenSSL连接到GitHub来请求应用程序模板文件.GitHub要求使用SSL进行所有连接.连接失败,因为OpenSSL无法验证服务器证书.
我可以通过下载证书文件来解决问题:
$ cd /opt/local/etc/openssl $ sudo curl -O http://curl.haxx.se/ca/cacert.pem $ sudo mv cacert.pem cert.pem
使用Ruby 1.9.2我没有问题.为什么我得到Ruby 1.9.3的"证书验证失败"问题?这是一个Ruby 1.9.3错误吗?它是否特定于Mac OS 10.6.8?我的解决方案是解决这个问题的正确方法吗?
什么时候做
heroku run rake db:migrate
执行所有迁移然后,最后我总是得到以下消息:
/app/vendor/bundle/ruby/1.9.1/bin/rake: No such file or directory - pg_dump -i -s -x -O -f /app/db/structure.sql dan79p98fykovu
我无法在Heroku上将pg_dump添加到PATH.怎么处理这个?
我的回购是SVN,我用git进行所有开发.我们有一个标准的布局,我用我的初始化我的本地回购git svn init -s <url to repo>
这是我使用分支机构的工作流程:
# creates a new branch remotely
git svn branch new-branch-name
# switches to a branch or trunk locally
git reset --hard name-of-branch
git reset --hard trunk
# merge changes from trunk into a branch
git reset —hard name-of-branch
git merge trunk
git svn dcommit
Run Code Online (Sandbox Code Playgroud)
上面的最后一个命令将提交对分支名称分支的更改.我的问题是,git如何知道这一点?当我做git时reset --hard foo
,到底发生了什么?
这可能只是关于git的一般性问题.每次我尝试研究回答我弄不清楚,如果SVN一体化是一个特例与否.
我的红宝石在/ usr/local/bin中.无论何时找不到它,并且在我的cron文件顶部设置PATH也不起作用,我认为因为无论何时在新的bash实例中运行命令.
# this does not work PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin # Begin Whenever generated tasks for: foo 0 * * * * /bin/bash -l -c 'cd /srv/foo/releases/20110429110637 && script/rails runner -e production '\''ActiveRecord::SessionStore::Session.destroy_recent(15)'\''' # End Whenever generated tasks for: foo
我怎么能告诉我的ruby二进制文件在哪里?从/ usr/bin创建一个符号链接对我来说似乎很混乱,但我想这可能是唯一的选择.
这个问题提供了env :PATH, "..."
在schedule.rb作为一个解决方案,但(一)我无法找到该功能的任何文档中的文档(二)它似乎并没有已经解决了提问者的问题,任何地方(不幸的是它需要不平凡转机时间让我试试吧).
实际更新它在这个页面的底部,我现在就试试吧.
更多信息
bash -l
,/ usr/bin/env发现ruby就好了所以,这很神秘......
每次我创建一个新项目时,我都会收到以下错误:
Adams-MacBook-Pro:for_testing adam$ rails new outsidein Invalid gemspec in [/Users/adam/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"] Invalid gemspec in [/Users/adam/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"] Invalid gemspec in [/Users/adam/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"]
我已经更新了黄瓜和黄瓜铁路,但我得到了错误.我该怎么办?
这篇长篇,详细而有趣的文章描述了以下历史和设计--thunder-lock
:http://uwsgi-docs.readthedocs.org/en/latest/articles/SerializingAccept.html
但它无法帮我决定何时需要它!
什么时候是--thunder-lock
有益的?
我在我的分支上做了一个改变 foo
git rebase master
Run Code Online (Sandbox Code Playgroud)
一些冲突解决方案,然后决定我不想这样做,并中止.
git rebase --abort
Run Code Online (Sandbox Code Playgroud)
所有分支日志历史看起来都很正常.现在我想再次开始相同的过程.
git rebase master
Run Code Online (Sandbox Code Playgroud)
当git遇到它第一次遇到的第一个冲突时,它会像以前一样列出冲突的文件.但不是用<<<<<
等标记冲突,它只是在我第一次解决冲突后才显示文件处于其状态.有趣的是它有这个功能......但我实际上想要以不同的方式解决其中一个冲突,所以我不希望它记住并重新应用.
到底发生了什么,我能把它关掉吗?
我目前有以下内容:
use Rack::Rewrite
use Rack::Cache, {:verbose=>true, :metastore=>"memcached://localhost:11211/rack-cache/meta", :entitystore=>"memcached://localhost:11211/rack-cache/body"}
use Rack::Rewrite
use Rack::Lock
use Rack::Deflater
use ActionController::Failsafe
use #<Class:0x007fb34be9ac90>
use ActionController::Session::DalliStore, #<Proc:0x007fb34bea3638@(eval):8 (lambda)>
use Rails::Rack::Metal
use ActionController::ParamsParser
use Rack::MethodOverride
use Rack::Head
use ActionController::StringCoercion
use Sass::Plugin::Rack
use Hassle
use ActiveRecord::ConnectionAdapters::ConnectionManagement
use ActiveRecord::QueryCache
run ActionController::Dispatcher.new
Run Code Online (Sandbox Code Playgroud)
我可能错了,但将Deflater移到顶端是没有意义的吗?这样任何和所有流量都被gzip压缩.
谢谢您的帮助.
公共服务中提供静态内容的红宝石代码有多少?它完全通过rails应用程序吗?它是否使用Rack :: Static?