我试图在我的一个网址中使用问号,但是sinatra/ruby将其解释为使得前缀可选的正则表达式字符.有没有办法让实际?在你的get方法?我试过了 \?和[?]但他们没有工作.这是我的get方法的开头:
get '/group?groupid=:groupId' do |id|
Run Code Online (Sandbox Code Playgroud)
如果我访问www.mydomain.com/group?groupid=1我收到错误但是如果我访问www.mydomain.com/groupgroupid=1则会有效
我正在使用一个非常简单的Sinatra应用程序,效果很好.但是,每条日志消息重复三次.我可以通过禁用Sinatra日志记录将其降低到2
disable :logging
Run Code Online (Sandbox Code Playgroud)
但我还有两个.消息略有不同,所以我认为它们来自Rack和堆栈中的其他位置.
如何完全禁用成功Web请求的记录?
我正在与Sinatra 建立一个新版本的恋人.您可以在GitHub上查看Lovers源代码.
cucumber通过从存储库的根目录运行CLI,我能够以黄瓜模式成功运行我的应用程序.但...
1)如何在开发模式下运行应用程序?
这有点棘手,因为它是一个模块化的应用程序,我已将app.rb文件移动到lib/lovers/application.rb.
2)如何运行它shotgun以便它在每个HTTP请求上自动重启应用程序?
3)当您运行ruby app.rbSinatra应用程序时,它实际上做了什么?
如果你回答第3部分,我想我能够找到1和2的答案.
谢谢!
我在datamapper中有以下模型:
class Student
include DataMapper::Resource
property :id, Serial
# <snip>
property :permissions, String, :accessor => :protected, :required => true, :default => 'standard'
property :valid, Boolean, :default => false, :required => true
# <snip>
end
Run Code Online (Sandbox Code Playgroud)
在要求'dm-validations'(版本1.1.0)并启动我的Sinatra应用程序后,我收到以下消息:
/Library/Ruby/Gems/1.8/gems/dm-validations-1.1.0/lib/dm-validations.rb:81:in `valid?': wrong number of arguments (1 for 0) (ArgumentError)
from /Library/Ruby/Gems/1.8/gems/dm-validations-1.1.0/lib/dm-validations.rb:81:in `save_self'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.1.0/lib/dm-core/resource.rb:1007:in `_save'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.1.0/lib/dm-core/resource.rb:1223:in `run_once'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.1.0/lib/dm-core/resource.rb:1006:in `_save'
from /Library/Ruby/Gems/1.8/gems/dm-core-1.1.0/lib/dm-core/resource.rb:406:in `save'
from /Library/Ruby/Gems/1.8/gems/dm-validations-1.1.0/lib/dm-validations.rb:69:in `save'
from /Library/Ruby/Gems/1.8/gems/dm-validations-1.1.0/lib/dm-validations/support/context.rb:30:in `validation_context'
from /Library/Ruby/Gems/1.8/gems/dm-validations-1.1.0/lib/dm-validations.rb:69:in `save'
<snip>
我正在为我的模型使用的"有效"名称是保留字吗?如果是,我在哪里可以找到这些单词.我接下来试着给它命名:'student_valid',但现在我真的很好奇.
谢谢
我有一个报名表,要求提供人名和电子邮件地址.我将该电子邮件地址保存到会话中,以便在表单提交后我可以访问它.然后我使用Pony向提交表单的人发送感谢/通知电子邮件.但是,虽然它没有问题发送到MobileMe地址,但它不会发送到Gmail地址.我用来发送的行是:
Pony.mail(:to => "#{@email}", :from => 'from@email.com', :subject => "Thanks for entering!",
:body => "Thank you!")
Run Code Online (Sandbox Code Playgroud)
@email变量在处理程序中定义,并从会话中获取值.
有任何想法吗?
我想要一个运行sinatra应用程序来侦听两个端口 80和4567?
那可能吗
我在Sinatra模块化应用程序中重定向错误时遇到问题.我正在Heroku上部署,当出现错误时,应用程序就会死掉.
我希望它能够捕获此错误,重定向到错误页面并正常运行.
我在基类中设置了如下内容:
set :raise_errors, false
Run Code Online (Sandbox Code Playgroud)
和
error do
redirect to('/')
end
Run Code Online (Sandbox Code Playgroud)
但是当我raise从路径块中发生错误时,它就会转到标准的Sinatra错误页面.
我需要做些什么来捕捉我的错误并重定向?
我在做一些简单的事情时遇到了问题,我不确定我做错了什么.我在Windows下使用最新版本的Ruby和Sinatra(1.9.3和1.3.3)
我的主要代码是:
require 'sinatra'
get '/form' do
erb :form
end
post '/form' do
"Value: '#{params[:somevalue]}'"
end
Run Code Online (Sandbox Code Playgroud)
我的再培训局:
<form action="/form" method="post">
<input type="text" name"somevalue">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
当我按提交时,它不会显示值.它只会显示:Value: ''
我甚至尝试使用纯HTML(结果相同).
这些是我的请求标题:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:es,en-US;q=0.8,en;q=0.6
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:0
Content-Type:application/x-www-form-urlencoded
Host:localhost:4567
Origin:http://localhost:4567
Referer:http://localhost:4567/form
User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.91 Safari/537.11
Run Code Online (Sandbox Code Playgroud)
我需要配置什么吗?
我正在与Sinatra合作,但我对Ruby完全不熟悉并且对下面的代码实际上做了什么感到困惑.
class Something < Sinatra::Base
get '/' do
'hello world'
end
end
Run Code Online (Sandbox Code Playgroud)
我们似乎没有定义方法.我们打电话给这个get方法吗?如果是这样,它什么时候被称为?我没有在其他语言中看到过这样的东西.
如果我们有2个扩展Sinatra :: Base的类,那么Sinatra如何理解它get适用于Something而不是其他类.
我正在尝试使用shared_examples作为跨多个路线重复期望的方法.特别是,我想测试我的页眉和页脚中的某些静态资源是否正在加载.但是,我得到一个错误说:
RSpec::Core::ExampleGroup::WrongScopeError: `it_behaves_like` is not available from within an example (e.g. an `it` block) or from constructs that run in the scope of an example (e.g. `before`, `let`, etc). It is only available on an example group (e.g. a `describe` or `context` block).
Run Code Online (Sandbox Code Playgroud)
现在,我不确定如何解决这个问题.这是我目前的设置.
shared_examples_for 'a page' do
describe 'should load static assets' do
it 'header, footer and icons' do
expect(page).to have_css 'footer.footer'
expect(page).to have_css '#navbar-brand'
brand = page.first(:css, '#navbar-brand')
visit brand[:src]
expect(page.status_code).to be 200
end
end
end
describe 'site …Run Code Online (Sandbox Code Playgroud)