我有一个模型,称为交付:
property :id, Serial
property :created_at, DateTime
property :updated_at, DateTime
property :price, BigDecimal, :precision => 10, :scale => 2
Run Code Online (Sandbox Code Playgroud)
交付有一个价格,在SQLite中查看的价格是5.49,6.95,4.95等
在输出中显示此信息(以haml编码)时,来自delivery.price的值显示为0.695E1,0.495E1等
知道为什么他们以这种格式显示,以及如何最好地正确显示它们.
所有帮助表示赞赏!
使用ruby mongodb驱动程序,有没有办法在configure块中创建一个可以在路由方法中访问的连接对象,这样我就不必在每个请求上重新创建连接?
我试过使用eventmachine,但我所拥有的只是一侧运行sinatra的应用程序,另一侧运行事件机的服务器。我不知道如何将sinatra应用程序作为websocket运行。
例如,我想将其用作网络套接字:
得到'/'做 #从数据库中提取信息并显示 结束
任何帮助表示赞赏。
谢谢!L.
在我的一个模型中,我有一个发送电子邮件的方法.我想通过Haml文件标记此电子邮件,该文件与我的其他视图一起存储.
有没有办法从模型中调用Sinatra的HAML帮助器?如果没有,我需要直接打电话给Haml:
@name = 'John Doe'
Haml::Engine.new(File.read("#{MyApplication.views}/email.haml")).to_html
Run Code Online (Sandbox Code Playgroud)
Haml模板有没有办法访问@name实例变量?
我在用 -
我的路径文件如下所示:
Foo::Application.routes.draw do
devise_for :admins
root :to => "home#index"
authenticate :admin do
mount Simple::App, at: '/simple'
end
end
Run Code Online (Sandbox Code Playgroud)
/ simple下的访问需要进行身份验证.
但是,如果没有登录,访问/ simple/*将重定向到/ simple/admin/sign_in而不是/ admin/sign_in,这将创建一个重定向循环.
我是否需要创建自定义failure_app来纠正此行为?
谢谢!
在我开发的过程中,我希望在运行测试时看到sinatra app异常,cosider示例:
require 'sinatra/base'
class ExceptionWeb < Sinatra::Base
enable :raise_errors
enable :dump_errors
configure do
enable :dump_errors
end
get "/" do
raise "hell"
"ok"
end
def self.bad_method
raise "bad method"
end
end
require 'rack/test'
describe 'The Web interface' do
include Rack::Test::Methods
def app
ExceptionWeb
end
it "should error out" do
get "/"
#puts last_response.errors
#ExceptionWeb.bad_method
#last_response.should be_ok
end
end
Run Code Online (Sandbox Code Playgroud)
下面的rspec代码显示没有异常,如果我取消注释last_response,那么我看到有些错误,但我看不出有什么问题.
但是电话mad_method显示我异常.
并且添加puts last_response.errors到每个测试看起来都不合适.
我尝试了sinatra配置选项raise_errors,dump_errors但这对我没什么帮助.
有任何想法吗?
我是ruby,sinatra和padrino的新手,所以这可能是一个愚蠢的问题,但是:
有没有办法将orm添加到现有的应用程序中?
我的问题是我用以下命令行创建了一个应用程序:
$ padrino-gen project sample_blog -a mysql -b
Run Code Online (Sandbox Code Playgroud)
(我认为选择了默认的ORM.)
然后尝试添加模型:
$ padrino-gen model post title:string body:text
<= You need an ORM adapter for run this generator. Sorry!
Run Code Online (Sandbox Code Playgroud)
如何在不重新编写整个应用程序的情况下添加orm?
它现在不是很重要,因为应用程序不包含任何内容,但我计划在后面添加测试,我想知道它是否容易.
感谢您的初学者提示.
我有一个小的sinatra应用程序,我用来运行一个基本的网站.该网站的内容由客户提供,其中大部分来自PDF.因为我宁愿不必手动更换所有的<with <和&with &,有没有办法配置HAML/Sinatra自动为我做?
基本上,我有一些看起来像这样的块:
%p
large block of text here...
multi-line so I can see it in my IDE...
more lines here...
Run Code Online (Sandbox Code Playgroud)
我想找到一些配置选项,告诉HAML浏览所有内容并用他们的HTML实体对应物替换不安全的字符.
我尝试使用HTMLEntities gem,但这个网站有很多多行段落,我似乎无法让它工作.我的意思是我会在我的server.rb文件中做这样的事情:
def "/some_url"
@encoder = HTMLEntities.new
haml :some_template
end
Run Code Online (Sandbox Code Playgroud)
在我的模板中:
%p
= @encoder.encode("Really long multiline string...
some more lines here...
and more lines...")
Run Code Online (Sandbox Code Playgroud)
它会吐出关于错过结账的错误).
require 'sinatra'
require 'rubygems'
class TestServer < Sinatra::Application
set :port, 22340
get '/' do
"Hello World"
end
run! if app_file == $0
end
Run Code Online (Sandbox Code Playgroud)
Ruby 2.0.0-p0和Sinatra 1.4.2的非常简单的应用程序
当我按ctrl-c时webrick服务器在默认端口上重新启动...请参阅下面的输出
LM-BOS-00715009:server joshughes$ ruby test.rb
[2013-04-19 16:07:48] INFO WEBrick 1.3.1
[2013-04-19 16:07:48] INFO ruby 2.0.0 (2013-02-24) [x86_64-darwin11.4.2]
== Sinatra/1.4.2 has taken the stage on 22340 for development with backup from WEBrick
[2013-04-19 16:07:48] INFO WEBrick::HTTPServer#start: pid=63798 port=22340
^C
== Sinatra has ended his set (crowd applauds)
[2013-04-19 16:07:56] INFO going to shutdown ...
[2013-04-19 …Run Code Online (Sandbox Code Playgroud) 我尝试显示图像,但日志中的响应代码为404:
0:0:0:0:0:0:0:1 - - [02/Nov/2013 11:23:55] "GET /public/images/gtk_refresh.png HTTP/1.1" 404 466 0.0030
0:0:0:0:0:0:0:1 - - [02/Nov/2013:11:23:55 MEZ] "GET /public/images/gtk_refresh.png HTTP/1.1" 404 466
http://localhost:4567/main-> /public/images/gtk_refresh.png
Run Code Online (Sandbox Code Playgroud)
rb文件:
get '/main' do
erb: main
end
Run Code Online (Sandbox Code Playgroud)
erb文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1
/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>hello world</title>
</head>
<body>
<img src="public/images/gtk_refresh.png" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我尝试了相对和绝对的图像路径,它不起作用.