标签: sinatra

与sinatra Authlogic?

我找不到关于如何使用资源authlogic西纳特拉.或者至少没有关于使用authlogic进行身份验证的规范方法的文档...

任何人都有指向一些教程,示例代码的指针或可以勾勒出一个最小的authlogic/sinatra示例?

提前致谢.

ruby authentication sinatra authlogic

4
推荐指数
1
解决办法
2778
查看次数

Sinatra有ActiveMerchant吗?

如果您希望在应用中添加电子商务功能,哪些支付网关库可以与Sinatra配合使用?

ruby-on-rails payment-gateway sinatra activemerchant

4
推荐指数
1
解决办法
1028
查看次数

Sinatra与数据部分?

我正在制作一个超小的Sinatra博客应用程序,我如何从数据库中获取条目,格式化它们,并将它们插入到我的布局中?

ruby sinatra

4
推荐指数
1
解决办法
4020
查看次数

你能指定用于Sinatra重定向的HTTP方法吗?

我有这样的事情:

post "/login" do

end

get "/login" do

end

post "/register" do
  ...
  redirect "/login" # I would like to redirect to get "/login" instead of post "login"
end
Run Code Online (Sandbox Code Playgroud)

我可以告诉sinatra我想使用get,而不是隐含地选择"post"吗?

ruby sinatra

4
推荐指数
1
解决办法
2683
查看次数

如何使用RSpec测试gem中的Sinatra应用程序?

我正在编写一个gem,其中包含一个开发人员可以扩展的Sinatra应用程序.例如:

# gem code:
require 'sinatra'
module Mygem
  class Application < Sinatra::Base
    get 'auth/login' {}
    get 'auth/logout {}
  end
end

# developer code:
require 'mygem'
class DeveloperApp < Mygem::Application
  # ..
end
Run Code Online (Sandbox Code Playgroud)

我也开始使用RSpec了.我应该如何配置RSpec来测试此功能?

ruby rubygems rspec sinatra

4
推荐指数
1
解决办法
1974
查看次数

从模型访问Sinatra设置

我有一个模块化的Sinatra应用程序.我在配置块中设置了一些自定义变量,并希望在我的模型中访问这些设置.

问题是,NoMethodError当我尝试访问我的自定义设置时,我得到了一个MyModel.标准设置似乎仍然可以正常工作.我怎样才能做到这一点?

# app.rb
require_relative 'models/document'

class App < Sinatra::Base
  configure do
    set :resource_path, '/xfiles/i_want_to_believe'
  end

  get '/' do
    @model = MyModel.new
    haml :index
  end
end

# models/my_model.rb
class MyModel
  def initialize
    do_it
  end
  def do_it
    ...
    settings.resource_path # no method error
    ...
    settings.root # works fine
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby sinatra

4
推荐指数
2
解决办法
3840
查看次数

Ruby中的"require if"

这是我在机架应用程序中的内容

#rb file
require 'pry'
class .....

#GemFile
group :development do
    gem "pry"
    gem "pry-nav"
end
Run Code Online (Sandbox Code Playgroud)

当然,在生产中它会导致错误.怎么做一个"要求"?

ruby gem rack sinatra

4
推荐指数
1
解决办法
1663
查看次数

Sinatra:如何回应带有标题的图像"content-type"=>"image/jpeg"

例:

require 'sinatra'

get '/somekey' do
  headers('Content-Type' => "image/jpeg")
  ["http://upload.wikimedia.org/wikipedia/commons/2/23/Lake_mapourika_NZ.jpeg", "http://img.brothersoft.com/screenshots/softimage/j/jpeg_converter-4567-1.jpeg"].sample
end
Run Code Online (Sandbox Code Playgroud)

我想回复一个未托管在我的服务器上的图像.

我怎么能得到这个?

注意:图像的链接不是秘密的(因为它托管在S3上).它是为一个生成identicons的网站.

结帐http://identico.in/[insert_any_key_here].原因是我希望服务器进行查找,如果图像已存在于S3上,则使用该图像,如果不存在,则生成一个然后将其上载到s3.

注意:如果我这样做:

require "open-uri"
open ["http://upload.wikimedia.org/wikipedia/commons/2/23/Lake_mapourika_NZ.jpeg", "http://img.brothersoft.com/screenshots/softimage/j/jpeg_converter-4567-1.jpeg"].sample
Run Code Online (Sandbox Code Playgroud)

然后它工作,但是,我觉得这可能会慢很多,因为我的服务器首先必须下载图像并打开它,然后用户必须从我的服务器下载图像.

content-type image sinatra

4
推荐指数
1
解决办法
1703
查看次数

禁用Sinatra标准输出

出于安全原因,我不希望Sinatra打印标准输出中所请求的每个URL,我尝试使用本回答中的set :logging, false建议使用:

class SweetAppName< Sinatra::Base
    set :show_exceptions, false
    set :environment, :production
    set :logging, false
Run Code Online (Sandbox Code Playgroud)

但是,当我使用rackup和thin运行应用程序时,我仍然看到请求记录到终端:

127.0.0.1 - - [26/May/2015:09:32:34 -0700]"GET/not-a-real-url HTTP/1.0"404 - 0.0452

我该如何关闭它们?

ruby sinatra

4
推荐指数
1
解决办法
1552
查看次数

如何在docker-compose run中使用Docker访问Sinatra端口

我不确定如何正确将4567Docker 的Sinatra端口正确地公开回主机。在本地运行该应用程序没有问题。

以下存储库显示了问题的情况https://gitlab.com/davidhooey/sinatra-docker

通过搜索,我注意到以下问题:在Docker容器中运行Ruby Sinatra无法连接(通过Mac主机)或无法找到命令(在不同情况下)?--host 0.0.0.0传递到rackup命令中。但是,我正在使用编程方式启动该网站Site.run!

文件树

.
??? Dockerfile
??? Gemfile
??? Gemfile.lock
??? README.md
??? app.rb
??? docker-compose.yml
??? site.rb
??? views
    ??? index.erb
Run Code Online (Sandbox Code Playgroud)

app.rb

module App
    class App
        def initialize(args)
            # Do some stuff before launching site.
            # Launch site
            Site.run!
        end
    end
end

App::App.new(ARGV)
Run Code Online (Sandbox Code Playgroud)

site.rb:bind西纳特拉设置为0.0.0.0

site.rb

require 'sinatra'

module App
    class Site < Sinatra::Base
        set :bind, '0.0.0.0'
        set :static, …
Run Code Online (Sandbox Code Playgroud)

ruby sinatra docker docker-compose

4
推荐指数
1
解决办法
517
查看次数