标签: sinatra

RACK在哪里登录?

我正在通过RACK运行sinatra应用程序.

该活动记录到哪个文件?另外我如何设置日志文件路径?

ruby rack sinatra

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

以编程方式设置Rack会话cookie到期

我正在使用Rack尝试在我的Sinatra应用程序中实现"记住我"功能.

我能够将会话cookie设置为在会话结束时或在X秒时间内到期,但我想同时执行这两项操作.

例如,如果用户点击了"记住我",那么我希望他们的会话在X秒后结束.例如,我的app.rb有一行如下所示:

use Rack::Session::Cookie, :expire_after => 2592000, #30 days in seconds
                           :secret => MY_SECRET
Run Code Online (Sandbox Code Playgroud)

当用户登录时,我尝试执行以下操作:

if (!remember_me)
  env['rack.session.options'][:expire_after] = nil
end
Run Code Online (Sandbox Code Playgroud)

但是,这不会设置cookie值.

怎么设置这个?

ruby session rack sinatra

14
推荐指数
1
解决办法
4990
查看次数

如何阻止sinatra跑步?

如果ruby myapp.rb在localhost:4567开始sinatra预览,我怎么能以编程方式停止/停止/杀死它?终端命令(除了Ctrl-C)或Rake任务都没问题.

我需要将它合并到Rake任务或终端中.

ruby sinatra

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

分析Sinatra应用程序的最佳方式是什么?

我试图找出分析Sinatra应用程序的最佳方式是什么.我想要一个解决方案,它会给我一个路径中所有方法的时间配置文件,包括haml的渲染.

有没有人介绍过Sinatra应用程序?有什么指针吗?

ruby profiling sinatra

14
推荐指数
2
解决办法
2151
查看次数

Sinatra选项HTTP动词

Sinatra是否支持OPTIONS HTTP动词?就像是:

options '/' do
  response.headers["Access-Control-Allow-Origin"] = "*"
  response.headers["Access-Control-Allow-Methods"] = "POST"

  halt 200
end
Run Code Online (Sandbox Code Playgroud)

sinatra

14
推荐指数
2
解决办法
9612
查看次数

如何在Sinatra应用程序中链接Sass文件?

我正在尝试将Sass文件链接到Sinatra应用程序.我有一个public/sass/styles.scss文件,我想在我的views/layout.haml文件中链接它.我可以使用以下链接链接常规css文件layout.haml:%link(rel="stylesheet" href="styles.css").但是,当我尝试链接到我的时sass/styles.scss,它不起作用.有人可以告诉我如何在Sinatra应用程序中链接Sass css文件吗?谢谢!

ruby sass sinatra

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

如何修复Sinatra将https重定向到nginx下的http

我有一个在nginx中运行的Sinatra应用程序(使用thin作为后代理),我redirect '/<path>'在Sinatra中使用语句.但是,当我在https下访问该站点时,这些重定向将发送给我http://localhost/<path>而不是https://localhost/<path>他们应该这样做.

目前,nginx的将控制传递到薄用这个命令,其中是proxy_pass http://thin_clusterthin_cluster

upstream thin_cluster { server unix:/tmp/thin.cct.0.sock; }
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

nginx thin sinatra

14
推荐指数
1
解决办法
5000
查看次数

环境变量本地和Heroku

我有一个sinatra应用程序,其中我有一个yml文件来设置环境变量,我用这个方法调用它们

module MyConfig

 def config
  environment = ENV["RACK_ENV"] || "development"
  YAML.load_file("./config/config.yml")[environment]
 end
 end
Run Code Online (Sandbox Code Playgroud)

因此,当我想使用变量时,我会这样做

aws_access_key_id = config['aws_access_key']
Run Code Online (Sandbox Code Playgroud)

我有一个.gitignore文件,当推送到github时忽略了config.yml.例如,当我推送到heroku时,这些环境变量将无法访问?

所以这让我使用heroku方式设置它们就像这样

heroku config:add aws_access_key= myapikey
Run Code Online (Sandbox Code Playgroud)

但是heroku访问这些就像

aws_access_key_id = ENV['aws_access_key']
Run Code Online (Sandbox Code Playgroud)

如何设置我的开发环境以使用方法配置和heroku使用ENV,我是否以错误的方式看待这个?或者我的配置方法是否为我这样做?

任何帮助赞赏

Rake文件

  require 'active_support/core_ext'
  require './config/config.rb'
  require 'bundler/setup'
  Bundler.require(:default)

   include MyConfig

  AssetSync.configure do |con|
  con.fog_provider = 'AWS'
  con.fog_region = 'eu-west-1'
  con.fog_directory = config['fog_directory']
  con.aws_access_key_id = config['aws_access_key']
  con.aws_secret_access_key = config['aws_secret_key']
  con.prefix = "assets"
  con.public_path = Pathname("./public")
  end

 namespace :assets do
 desc "Precompile assets"
 task :precompile do
  AssetSync.sync
 end
end
Run Code Online (Sandbox Code Playgroud)

heroku environment-variables sinatra gitignore foreman

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

"CSRF检测到"与Omniauth和Google合作

我得到了这个

OmniAuth :: Strategies :: OAuth2 ::/auth/google/callback中的CallbackError csrf_detected | CSRF检测到

我的代码:

require 'sinatra'
require "sinatra/json"
require "sinatra/config_file"
require 'omniauth-oauth2'
require 'omniauth-google-oauth2'

use Rack::Logger

config_file "config/app_config.yml"
use Rack::Session::Cookie, secret: '5fb7w345y3489f523y4h'

configure do
  enable :sessions
end

use OmniAuth::Builder do
  provider :google_oauth2, settings.google[:client_id], settings.google[:secret],
    {
      :scope => "userinfo.profile",
      :access_type => "offline",
      :prompt => "select_account consent",
      :name => "google"
    }
end

get '/list' do
  json get_list
end

get '/' do
  %Q|<a href='/auth/google'>Sign in with Google</a>|
end

get '/auth/:name/callback' do
  @auth = request.env['omniauth.auth']
  @auth.inspect
end …
Run Code Online (Sandbox Code Playgroud)

ruby sinatra oauth-2.0 omniauth

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

点击服务器错误`<module:Templates>':未初始化的常量Tilt :: CompileSite(NameError)

我正在尝试将我的sqlite3数据库迁移到postgresql,但我无法通过此错误.

当我跑 taps server sqlite://db/development.sqlite3 [user] [password]

我一直在 /Users/phillipjarrar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sinatra-1.0/lib/sinatra/base.rb:298:in <module:Templates> : uninitialized constant Tilt::CompileSite (NameError)

ruby rubygems sinatra taps

14
推荐指数
1
解决办法
474
查看次数