标签: sinatra

当我在datamapper中尝试"all"方法时会发生错误

当我在Sinatra尝试这样做时,

class Comment
    include DataMapper::Resource
    property :id,           Serial
    property :body,         Text
    property :created_at, DateTime
end

get '/show' do
  comment = Comment.all
  @comment.each do |comment|
    "#{comment.body}"
  end
end

它返回此错误,

ERROR: undefined method `bytesize' for #<Comment:0x13a2248>
Run Code Online (Sandbox Code Playgroud)

有人能指出我正确的方向吗?

谢谢,

datamapper sinatra

6
推荐指数
1
解决办法
5518
查看次数

用Sinatra学习和"演唱"Ruby

您好,我正在尝试通过阅读Ruby编程语言书来提高我的ruby知识.在工作中阅读编码器我看到很多受访者建议深入研究项目源代码

  • 学习最佳实践
  • 要注意坏习惯
  • 当然还要为如何做事带来新的灵感.

我决定选择一个项目,因为我能找到更多自给自足.我的选择是Sinatra,因为它是1000 LOC.

这是一个很好的学习项目吗?你是否建议另一个更简单(即更少的LOC)?

我之前曾试图看过铁路机械,但我从它出来吓坏了.

ruby sinatra

6
推荐指数
1
解决办法
585
查看次数

使用sinatra和haml从新的sass格式(scss)生成css文件

我正在写一个带有haml和sass的sinatra应用程序.当我尝试使用位于我的views文件夹中的scss扩展名链接样式表时,我收到以下错误:/nav.css中的NoMethodError未定义方法`scss'

这是我的get方法

get '/nav.css' do 
    content_type 'text/css', :charset => 'utf-8'
    scss :nav
end
Run Code Online (Sandbox Code Playgroud)

当我切换到较旧的sass语法时,我才能使用它.我还必须将nav.scss更改为nav.sass,将get方法更改为sass:nav

我也尝试过使用sass:nav with nav.scss和sass:nav with nav.sass但仍然是scss语法

ruby haml sass sinatra

6
推荐指数
2
解决办法
3850
查看次数

部署Rack应用程序的强大方式(Sinatra)

我正在寻找一种可靠的方式来部署Rack应用程序(在本例中是一个Sinatra应用程序).请求将花费一点时间(0.25-0.5秒等待代理的HTTP请求)并且可能有相当数量的流量.

我应该使用传统的杂种群集设置吗?使用HAProxy作为负载均衡器?nginx的?架起来?

您使用了哪些解决方案?有哪些优势?

ruby deployment rack nginx sinatra

6
推荐指数
1
解决办法
4792
查看次数

从用户提交的文本中提取关键字的好方法是什么?

我正在建立一个网站,允许用户通过图形表示支持和反对特定问题的论据来理解辩论.(Wrangl)

我想对这些辩论进行分类,以便更容易找到并连接起来.我不想通过要求他们在看到任何好处之前添加标签和类别来激怒创建辩论的人,所以我正在寻找一种自动提取关键字的方法.

采用辩论的标题和描述(以及可能的论点内容,一旦有一些内容),提出一个很好的方法,例如,可以用作元数据的十个强有力的关键词,将类似的辩论连接在一起,甚至作为可以查看辩论的HTML页面头部中的"meta"关键字标签的内容.例如.Datamapper与ActiveRecord

该站点使用DataMapper进行数据存储,使用Sinatra在Ruby中编码.我理想地寻找可以在Heroku上运行的东西(我没有办法动态地将文件写入磁盘),我会考虑一个Web服务,一个API或者理想的Ruby宝石.

ruby metadata keyword text-mining sinatra

6
推荐指数
1
解决办法
2064
查看次数

如何使用Rack Middleware代理AJAX请求?

我正在开发一个Rails应用程序,它使用API​​后端来处理用Sinatra编写的AJAX请求.

API与Rails分开运行:

Rails: localhost:3000
API: localhost:9393

在生产中,我们将使用nginx代理对API的请求.

问题是我们在开发模式下没有nginx,我们使用的是瘦身.所以我需要某种Rack中间件,我可以在开发模式中添加它来代理我的请求.

有人能给我一个如何做到这一点的例子吗?

ajax reverse-proxy ruby-on-rails sinatra ruby-on-rails-3

6
推荐指数
1
解决办法
1382
查看次数

Sinatra :: Base.condition实际上做了什么?

我遇到了sinatra 条件方法,并对它是如何工作感到困惑.

我有一段代码:

def auth user
  condition do
    redirect '/login' unless user_logged_in?
  end
end
Run Code Online (Sandbox Code Playgroud)

其中检查用户是否记录了某些路由,示例路由:

get '/', :auth => :user do
  erb :index
end
Run Code Online (Sandbox Code Playgroud)

该方法user_logged_in?在项目的lib目录中的辅助文件中定义:

def user_logged_in?
  if session[:user]
    @user = session[:user]
    return @user
  end 
  return nil 
end
Run Code Online (Sandbox Code Playgroud)

所以,问题是:condition块是如何知道session[:user]包含什么的,在get '/'路径session[:user]上甚至没有设置?

condition方法在以下GitHub页面中定义:sinatra基本条件方法 谢谢.

ruby session block sinatra

6
推荐指数
1
解决办法
1066
查看次数

如何在模块化Sinatra应用程序中正确配置.

我正在尝试在Sinatra应用程序中使用子类化样式.所以,我有一个像这样的主要应用程序.

class MyApp < Sinatra::Base
  get '/' 
  end

  ...
end

class AnotherRoute < MyApp
  get '/another'
  end

  post '/another'
  end
end
Run Code Online (Sandbox Code Playgroud)
run Rack::URLMap.new \ 
  "/"       => MyApp.new,
  "/another" => AnotherRoute.new
Run Code Online (Sandbox Code Playgroud)

在config.ru我明白它只是为了"GET"如何关于其他资源(例如"PUT","POST")?我不确定我是否错过了一些明显的东西.而且,如果我有十个路径(/ path1,/ path2,...),我是否必须在config.ru中配置它们,即使它们在同一个类中?

ruby rack sinatra

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

堆栈级别太深(SystemStackError)

我有Sinatra应用程序,需要测试我的应用程序.

功能/支持/ env.rb:

require_relative "../../application"

require "capybara"
require "capybara/cucumber"
require "rspec"

World do
  Capybara.app = Application

  include Capybara::DSL
  include RSpec::Matchers
end
Run Code Online (Sandbox Code Playgroud)

功能/ one.feature:

Feature: Test homepage
  In order to make sure people can open my site
  I want to check it opened

  Scenario: Opening first page
    Given I have opened homepage    
    Then I should see site header
Run Code Online (Sandbox Code Playgroud)

测试一下:

cucumber features\one.feature
Run Code Online (Sandbox Code Playgroud)

结果:

Feature: Test homepage
  In order to make sure people can open my site
  I want to check it opened …
Run Code Online (Sandbox Code Playgroud)

ruby sinatra cucumber capybara

6
推荐指数
1
解决办法
3802
查看次数

我如何告诉Sinatra它是什么环境(开发,测试,生产)?

(免责声明:在Heroku上部署Sinatra的新手.)

我见过http://www.sinatrarb.com/configuration.html,它告诉我set :environment, :production.我的问题是,如何指定它:"在Heroku中,将环境设置为生产,否则保持测试/开发."

此外,即使在放线之后set :environment, :production,我认为它不起作用,因为当我rackup在本地尝试应用程序时,它仍在运行(当我知道(或者我想我知道)它不应该因为我没有安装postgres在我的电脑上).

的Gemfile

group :production do
  gem 'dm-postgres-adapter'
end

group :development, :test do
  gem 'dm-sqlite-adapter', "~> 1.2.0"
end
Run Code Online (Sandbox Code Playgroud)

ruby rubygems heroku sinatra

6
推荐指数
2
解决办法
5297
查看次数