标签: sinatra

新手sinatra问题

要使用sinatra返回文件,我一直在使用它:

  get '/:name' do
    x = File.open('c:/mywebsite/' + params[:name],'r')
  end  
Run Code Online (Sandbox Code Playgroud)

传入的URL是" http:// localserver:4567/myfile.html".

它有效,但它发生在我身上必须有一个更好的方法,但我找不到sinatra网站上的首选机制.

ruby file sinatra

0
推荐指数
1
解决办法
294
查看次数

在每个块的Ruby中,如何对块内数组中的最后一条记录执行某些操作?

说我有这样一个块:

<% @help_sections.each do |section| %>
    <li><%= section.name %></li>
<% end %>
Run Code Online (Sandbox Code Playgroud)

但是在返回的最后一条记录中,我想做其他事情,例如在li那里应用一个类:

<li class="last"><%= section.name %></li>

我怎么用最干的方式做到这一点?

谢谢.

EDIT1:

我想我会简单地使用一个if语句和lastruby方法,但不知道如何在块中做到这一点?我知道,如果我只想要该数组中的最后一个元素,我可以这样做@help_sections.last,但这在Ruby块的范围内没有意义.

ruby sinatra

0
推荐指数
1
解决办法
708
查看次数

will_paginate可以按日订购吗

场景:我有一个图片表,其中包含数百张照片。我目前正在使用“ will_paginate”对每页100张照片进行分页。我想继续使用'will_paginate',但是我希望分页能够按日进行。

我已经尝试通过使用以下方法,sort_by但是我认为它没有用。

@pics = Picture.paginate(:page => params[:page]).sort_by(&:created_at)

最终目标:
主页仅显示我今天的照片。
现在,如果我单击第2页,则仅显示昨天的照片。
现在,如果单击第3页,它将显示两天前拍摄的照片。

我想继续使用 will_paginate

ruby gem sinatra will-paginate ruby-on-rails-3

0
推荐指数
1
解决办法
692
查看次数

如何查看我在Sinatra上发布的表单数据

我正在研究Sinatra,有没有办法看到我发布到动作的表单数据?

谢谢.

ruby sinatra

0
推荐指数
1
解决办法
1374
查看次数

未定义的方法`include?' 为零:NilClass

我有一个在Ubuntu/Apache2/Passenger上运行的Sinatra应用程序.

这是一个简单的URL缩短器,可以在我的登台服务器上运行,但在导入旧数据库(包含缩短的URL)时开始抛出以下错误:

undefined method `include?' for nil:NilClass
file: resource.rb location: block in attributes= line: 332
Run Code Online (Sandbox Code Playgroud)

完全回溯在这里:

/usr/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/resource.rb in block in attributes=
            if model.allowed_writer_methods.include?(setter = "#{name}=")
/usr/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/resource.rb in each
      attributes.each do |name, value|
/usr/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/resource.rb in attributes=
      attributes.each do |name, value|
/websites/sinatra/shortener/application.rb in block in <top (required)>
        ct.attributes   =   { 
/usr/lib/ruby/gems/1.9.1/gems/sinatra-1.3.2/lib/sinatra/base.rb in call
            proc { |a,p| unbound_method.bind(a).call } ]
/usr/lib/ruby/gems/1.9.1/gems/sinatra-1.3.2/lib/sinatra/base.rb in block in compile!
            proc { |a,p| unbound_method.bind(a).call } ]
/usr/lib/ruby/gems/1.9.1/gems/sinatra-1.3.2/lib/sinatra/base.rb in []
            route_eval { block[*args] }
/usr/lib/ruby/gems/1.9.1/gems/sinatra-1.3.2/lib/sinatra/base.rb in block (3 levels) …
Run Code Online (Sandbox Code Playgroud)

ruby datamapper sinatra

0
推荐指数
1
解决办法
4939
查看次数

Sinatra或Rack应用程序可以查看它是否与Apache或Thin一起运行?

我正在尝试对Sinatra应用程序进行一些愚蠢的自动配置,允许从不同的子URI使用它,具体取决于它是使用Apache和Passenger运行,还是使用Thin Web服务器运行.

所以我的问题是:是否有可能从Sinatra应用程序中找出哪个Web服务器运行它?

ruby rack sinatra

0
推荐指数
1
解决办法
437
查看次数

将backbonejs用作付费服务站点是一个坏主意吗?

我正在开发一个软件即服务站点,我们将主要使用主干,但我注意到的是,应用程序的大部分逻辑都在于主干.虽然我们主要使用ruby作为会话控制器和数据库的桥梁.所以我们的网站很容易被复制.(只是复制js文件的问题......)

我知道这可能是一个愚蠢的问题但是,无论如何我可以避免这种情况,或者像这样的客户端重型应用程序对这种类型的应用程序有害吗?

我不确定如何在此时保护此站点结构.

javascript ruby sinatra backbone.js

0
推荐指数
1
解决办法
130
查看次数

如何在ERB文件中输出多维哈希?

我需要一些帮助打印我的哈希值.在我的"web.rb"文件中,我有:

class Main < Sinatra::Base

    j = {}
    j['Cordovan Communication'] = {:title => 'UX Lead', :className => 'cordovan', :images => ['http://placehold.it/350x150','http://placehold.it/350x150','http://placehold.it/350x150']}
    j['Telia'] = {:title => 'Creative Director', :className => 'telia', :images => ['http://placehold.it/350x150','http://placehold.it/350x150','http://placehold.it/350x150','http://placehold.it/350x150']}


    get '/' do
        @jobs = j
        erb :welcome
    end
end
Run Code Online (Sandbox Code Playgroud)

在"welcome.rb"中我打印哈希值,但它不起作用:

<% @jobs.each do |job| %>  
    <div class="row">
        <div class="span12">
            <h2><%=h job.title %></h2>
        </div>
    </div>
<% end %> 
Run Code Online (Sandbox Code Playgroud)

这是我的错误消息:

NoMethodError at / undefined method `title' for #<Array:0x10c144da0>
Run Code Online (Sandbox Code Playgroud)

ruby erb sinatra

0
推荐指数
1
解决办法
4853
查看次数

Ruby需要相关文件夹中的文件

我在Ruby 1.9.3中遇到了问题.这是我的文件结构

App
 |-- config
   |-- database_setup.rb
 |-- models
   |-- *.rb
Run Code Online (Sandbox Code Playgroud)

我的database_setup.rb需要要求models文件夹中的所有rb文件.我很难找到正确的目录.

ruby require sinatra

0
推荐指数
1
解决办法
917
查看次数

Sinatra:'/ route'中的NameError,未定义的局部变量或方法

我正在尝试为cms网站建立一个管理员后端.

这是我的应用程序的结构

??? app.rb
??? Gemfile
??? models
?   ??? models.rb
??? routes
?   ??? routes.rb
??? views
    ??? categories.erb
    ??? # ... other view files
Run Code Online (Sandbox Code Playgroud)

app.rb

require 'sinatra'
require 'data_mapper'
require 'dm-core'
require 'dm-migrations'
require 'digest'

enable :sessions

DataMapper.setup(:default, 'mysql://username:password@localhost/database')
require './models/models.rb' 
require './routes/routes.rb'
DataMapper.finalize
Run Code Online (Sandbox Code Playgroud)

models.rb

class Category
  include DataMapper::Resource

  property :id,         Serial
  property :name,       String

  has n, :posts
end
# other model definitons
Run Code Online (Sandbox Code Playgroud)

我在routes.rb中定义了categories一条路线

...
get '/categories' do 
    @categories = Category.all
    erb :categories
end …
Run Code Online (Sandbox Code Playgroud)

ruby sinatra nameerror ruby-datamapper

0
推荐指数
1
解决办法
1092
查看次数