目标:使用Sinatra + DataMapper + Postgres + Heroku部署一个简单的测试应用程序
问题:当使用gem'dm-postgres-adapter'gem'dm-sqlite-adapter'将应用程序推送到Heroku时,我得到了这个.使用本机扩展安装do_sqlite3(0.10.7)不幸的是,发生了致命错误.请通过https://github.com/carlhuda/bundler/issues向Bundler问题跟踪器报告此错误,以便我们对其进行修复.谢谢!
我访问了那个github链接,有人遇到了同样的问题,但是被定向到Heroku,https://github.com/carlhuda/bundler/issues/1488.我已经发送电子邮件到Heroku的邮件列表,我正在等待回复.
我遇到了LoadError: no such file to load -- dm-sqlite-adapter
所以我把它添加到Gemfile和Gemfile.lock中,这是我所能得到的
我试图在本地安装和设置Postgres,但那是我正在慢慢学习但却无法开始工作的新的痛苦.
我也在这里用一个类似的问题阅读了每一个问题,有些人向我推进了这一点,有些人没有得到提问者的回答而留下一个谜.
-----------------
source :rubygems
gem 'sinatra', '1.1.0'
gem 'thin', '1.2.7'
gem 'data_mapper'
gem 'dm-postgres-adapter'
gem 'dm-sqlite-adapter'
Run Code Online (Sandbox Code Playgroud)
------------------------
...
dm-sqlite-adapter (1.2.0)
dm-do-adapter (~> 1.2.0)
do_sqlite3 (~> 0.10.6)
...
Run Code Online (Sandbox Code Playgroud)
--------------------
web: bundle exec ruby recall.rb -p $PORT
Run Code Online (Sandbox Code Playgroud)
---------------------
require 'rubygems'
require 'sinatra'
require 'data_mapper'
DataMapper.setup(:default, ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/recall.db")
class Note
include DataMapper::Resource …
Run Code Online (Sandbox Code Playgroud) 我希望以下代码中的节点名称为"node:name",而是将名称放入字段的文本中.
require 'nokogiri'
file = File.new("/Users/adamar/code/xmler/test.xml", "w+")
builder = Nokogiri::XML::Builder.new do |xml|
xml.node:name do
end
end
file << builder.to_xml
puts builder.to_xml
Run Code Online (Sandbox Code Playgroud)
如何在nokogiri的节点名中使用冒号或其他特殊字符?
内核#at_exit方法和END(全部大写)关键字之间存在哪些差异(如果有)?后者仅仅是一种更为Perlish的做事方式,前者更像是Ruby风格吗?
我尝试过defined?(END {puts "Bye"})
,但语法错误.
cmd = "snv co #{rep} --username #{svn_user} --password #{pxs}"
puts cmd # this code wotks and prints all vars values normally
exec(cmd)
Run Code Online (Sandbox Code Playgroud)
xpto.rb:69:in `exec': string contains null byte (ArgumentError)
from xpto.rb:69
Run Code Online (Sandbox Code Playgroud)
$ ruby -v
ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-linux]
$ gem -v
1.3.7
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?我怎么解决这个问题?
我试图让这个Ruby内联C代码http://pastie.org/2825882工作.代码在vanilla C中运行,但在这里我得到错误和警告.是什么导致这个错误?
./backtrack_inline.rb:67: error: lvalue required as unary '&' operand
Run Code Online (Sandbox Code Playgroud)
另外,为什么我会收到以下错误?
./backtrack_inline.rb:73: error: too few arguments to function 'backtrack'
Run Code Online (Sandbox Code Playgroud)
检查生成的C代码(http://pastie.org/2826036)我没有看到参数有什么问题.但我也收到以下警告:
./backtrack_inline.rb:73: warning: passing argument 1 of 'backtrack' makes integer from pointer without a cast
./backtrack_inline.rb:73: warning: passing argument 2 of 'backtrack' makes integer from pointer without a cast
./backtrack_inline.rb:73: warning: passing argument 3 of 'backtrack' makes integer from pointer without a cast
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Sinatra应用程序中使用子类化样式.所以,我有一个像这样的主要应用程序.
class MyApp < Sinatra::Base
get '/'
end
...
end
class AnotherRoute < MyApp
get '/another'
end
post '/another'
end
end
Run Code Online (Sandbox Code Playgroud)
run Rack::URLMap.new \
"/" => MyApp.new,
"/another" => AnotherRoute.new
Run Code Online (Sandbox Code Playgroud)
在config.ru我明白它只是为了"GET"如何关于其他资源(例如"PUT","POST")?我不确定我是否错过了一些明显的东西.而且,如果我有十个路径(/ path1,/ path2,...),我是否必须在config.ru中配置它们,即使它们在同一个类中?
我遇到了一个简单的问题,但我似乎无法在网上找到任何决定性的答案。因此,我在安装了 Ruby 和 Rails 的 VirtualBox 中运行了 Ubuntu Server。
我想要做的是在 Windows 主机上使用 RubyMine 5.0 通过 SSH 编辑 VM 中的文件(就像我在 Eclipse 中所做的那样)。
问题是我找不到如何做到这一点。我很确定它可以做到,因为我在网上找到了一些相关的文章,但没有一篇告诉我如何配置 RubyMine 来做到这一点。
我已经搜索了菜单中的每个选项,但我自己无法弄清楚,因此“切中要害”的解释确实会有所帮助。
谢谢
所以,我想为我的sinatra
应用程序完全自定义日志记录,但我似乎无法禁用Rack::CommonLogger
.
根据sinatra文档,我应该做的是添加以下行(尝试将其设置false
为):
set :logging, nil
Run Code Online (Sandbox Code Playgroud)
到我的配置.但这不起作用,我仍然在终端中收到类似Apache的日志消息.所以我到目前为止找到的唯一解决方案是修补该死的东西.
module Rack
class CommonLogger
def call(env)
# do nothing
@app.call(env)
end
end
end
Run Code Online (Sandbox Code Playgroud)
任何人都有任何想法,如果有可能禁用这个没有重新处理这些问题?
我有以下Sinatra应用程序,我正在测试error
块,但它似乎没有工作.
这是我的sinatra应用程序:
require 'rubygems'
require 'sinatra'
error do
puts "----> Failed"
$stdout.print "----> Failed"
end
get "/*" do
raise "Error!!"
end
Run Code Online (Sandbox Code Playgroud)
我正在使用sinatra(1.3.3)
在 Rails 中,我可以读取标题
request.headers['HTTP_CF_CONNECTING_IP']
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 Sinatra 中做到这一点?
ruby ×8
sinatra ×5
rack ×2
arguments ×1
cmd ×1
datamapper ×1
exec ×1
heroku ×1
inline-code ×1
keyword ×1
nokogiri ×1
postgresql ×1
puma ×1
rubymine ×1
sqlite ×1
ssh ×1
string ×1
virtualbox ×1
xml ×1