标签: sinatra

尽管有SSH密钥,Capistrano在部署时会要求输入密码

我的ssh密钥肯定设置正确,因为我在使用ssh时从未提示输入密码.但是在部署时,capistrano仍然要求输入密码cap deploy.我设置的时候不会要求密码cap deploy:setup,奇怪的是.如果没有密码提示,它将使部署周期更加顺畅.

细节:我正在将一个Sinatra应用程序部署到Dreamhost共享帐户(使用Passenger).我曾经按照教程做了很长时间,这在当时完美无缺.从那以后出现了什么.我正在使用capistrano(2.5.9)和git版本1.6.1.1.这是我的Capfile:

load 'deploy' if respond_to?(:namespace) # cap2 differentiator

set :user, 'ehsanul'
set :domain, 'jellly.com'

default_run_options[:pty] = true

# the rest should be good
set :repository,  "ehsanul@jellly.com:git/jellly.git"
set :deploy_to, "/home/ehsanul/jellly.com"
set :deploy_via, :remote_cache
set :scm, 'git'
set :branch, 'deploy'
set :git_shallow_clone, 1
set :scm_verbose, true
set :use_sudo, false

server domain, :app, :web

namespace :deploy do
  task :migrate do
    run "cd #{current_path}; /usr/bin/rake migrate environment=production"
  end
  task :restart do
    run "touch #{current_path}/tmp/restart.txt"
  end
end

after …
Run Code Online (Sandbox Code Playgroud)

ruby capistrano ruby-on-rails sinatra ssh-keys

50
推荐指数
3
解决办法
4万
查看次数

为Sinatra设置默认content_type

在Sinatra,是否可以content_type 'application/json'设置默认值?因为我正在写一个api.

ruby json content-type sinatra

46
推荐指数
2
解决办法
2万
查看次数

Sinatra是多线程的吗?

Sinatra是多线程的吗?我在其他地方读到"sinatra默认是多线程的",这意味着什么?

考虑这个例子

get "/multithread" do
  t1 = Thread.new{
    puts "sleeping for 10 sec"
    sleep 10
    # Actually make a call to Third party API using HTTP NET or whatever.
  }
  t1.join
  "multi thread"
end

get "/dummy" do
  "dummy"
end
Run Code Online (Sandbox Code Playgroud)

如果我随后在另一个选项卡或浏览器中访问"/ multithread"和"/ dummy",则无法提供任何内容(在这种情况下为10秒),直到"/ multithread"请求完成.如果活动冻结应用程序变得没有响应.

我们如何在不产生应用程序的另一个实例的情况下解决这个问题?

ruby sinatra

45
推荐指数
2
解决办法
2万
查看次数

无法从同一网络上的另一台计算机访问本地Sinatra服务器

我有一个简单的Sinatra服务器,我通过textmate运行,但我无法从同一网络上的另一台计算机访问.

我在Mac OS 10.8.3上运行Ruby 1.9.3p327和Sinatra 1.4.1.防火墙已禁用.

我在不同的网络和计算机上测试了相同的场景.

计算机响应简单的ping但当我尝试telnet端口4567时,我无法建立连接.

ruby web-services sinatra

44
推荐指数
2
解决办法
1万
查看次数

Bundler不使用rbenv,找不到[gem]

我刚刚从rvm切换到rbenv,我正在尝试使用bundler进行gem管理.运行bundle install并尝试运行一个简单的sinatra应用程序(ruby app.rb),我得到这个:

Could not find haml-3.1.4 in any of the sources
Run `bundle install` to install missing gems.
Run Code Online (Sandbox Code Playgroud)

bundle install再次跑步没有效果.还尝试bundle update了另一个问题回复的建议.

这是我的Gemfile:

source "http://rubygems.org"

gem "sinatra"
gem "haml"
Run Code Online (Sandbox Code Playgroud)

这就是bundle show产生的

* bundler (1.0.22)
* haml (3.1.4)
* rack (1.4.1)
* rack-protection (1.2.0)
* sinatra (1.3.2)
* tilt (1.3.3)
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序所需要的:

require "rubygems"
require "bundler/setup"
require 'sinatra'
Run Code Online (Sandbox Code Playgroud)

我敢说这是一种路径问题,其中bundler和rbenv没有一起玩.我试过通过rbenv的文档查看,但无法找到任何东西.

注意:在另一个sinatra应用程序中,我尝试运行它时会得到以下内容:

Could not find addressable-2.2.7 in any of the sources
Run `bundle …
Run Code Online (Sandbox Code Playgroud)

ruby sinatra bundler rbenv

41
推荐指数
4
解决办法
4万
查看次数

将参数传递给erb视图

我正在尝试使用Ruby和Sinatra将参数传递给erb视图.

例如,我可以这样做:

get '/hello/:name' do
  "Hello #{params[:name]}!"
end
Run Code Online (Sandbox Code Playgroud)

我如何传递:name给视图?

get '/hello/:name' do
  erb :hello
end
Run Code Online (Sandbox Code Playgroud)

我如何读取view/hello.erb中的参数?

谢谢!

ruby erb sinatra

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

在Sinatra获取客户端的IP地址?

这是一个非常简单的问题,但我在任何地方都找不到这个.

如何从Sinatra获取客户端的IP地址?

get '/' do
    "Your IP address is #{....}"
end
Run Code Online (Sandbox Code Playgroud)

ip-address sinatra

38
推荐指数
2
解决办法
2万
查看次数

对于Sinatra/Rack来说,什么是非常简单的认证方案

我正忙着将一个非常小的Web应用程序从ASP.NET MVC 2移植到Ruby/Sinatra.

在MVC应用程序中,当用户登录对数据库进行了正确验证时,FormsAuthentication.SetAuthCookie用于设置持久性cookie.

我想知道在Sinatra中相应的Forms身份验证是什么?所有的身份验证框架看起来都非常笨重,并不是我真正想要的.

ruby forms-authentication sinatra

38
推荐指数
3
解决办法
3万
查看次数

Sinatra + Bundler?

我想知道如何使用Bundler与Sinatra.我们的想法是使用Bundler在.gems文件夹中下载的gem.

ruby sinatra bundler

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

Sinatra与EventMachine WebSockets一起工作是否成功?

我一直在使用Sinatra一段时间,我想通过websockets推送数据,为我的web-app添加一些实时功能.

我已经成功地使用了gem'em-websocket',但是还没能编写一个带有sinatra Web服务器和web-socket服务器的ruby文件.

我试过旋转跑!或者开始!在单独的线程中关闭方法但没有成功.

有没有人得到这个工作?

我希望将它们放在同一个文件中,然后在两个服务器之间共享变量.

谢谢!

ruby rack sinatra eventmachine websocket

36
推荐指数
5
解决办法
2万
查看次数