标签: sinatra

将Sinatra应用程序安装在rails应用程序内并共享布局

我想在我的rails应用程序中安装sinatra应用程序.但我希望这个人分享相同的布局.

iframe可以工作,但你还有其他想法吗?

谢谢

rack ruby-on-rails sinatra ruby-on-rails-3

23
推荐指数
1
解决办法
8958
查看次数

从Sinatra/Rack应用程序流式传输数据

我试图从Ruby(1.9.1p378)Sinatra(1.0)Rack(1.2.1)应用程序流文本数据(XML/JSON).建议的解决方案(例如,有没有办法将html刷新到Sinatra中的线路)似乎不起作用 - 当我产生某些无限流的元素(例如来自%w(foo bar).cycle)时,服务器就会阻塞.我试过webrickthin作为服务器.

有关完成此任务的任何建议吗?我应该使用http://sinatra.rubyforge.org/api/classes/Sinatra/Streaming.html,如果是这样,我将如何在我的应用程序中使用它?

ruby rack sinatra

22
推荐指数
4
解决办法
9495
查看次数

在rspec中指定内容类型

我正在尝试构建一个通过POST发送JSON(或XML)的rspec测试.但是,我似乎无法让它真正起作用:

    json = {.... data ....}.to_json
    post '/model1.json',json,{'CONTENT_TYPE'=>'application/json'}
Run Code Online (Sandbox Code Playgroud)

还有这个

    json = {.... data ....}.to_json
    post '/model1.json',json,{'Content-Type'=>'application/json'}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢!

ruby rack rspec sinatra

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

调用视图文件时如何传递参数?

我使用Sinatra和Haml编写了一个webform,用于调用Ruby脚本.

一切似乎都很好,除了一件事:我需要将参数传递给Sinatra/Ruby脚本中的Haml视图文件.

这是我的代码的一部分:

#!/usr/bin/env ruby
require 'rubygems'
require 'sinatra'
require 'haml'

get '/' do
  haml :index
end

post '/' do
  name = params[:name]
  vlan = params[:vlan]

  tmp = nil
  tmp = %x[./wco-hosts.rb -a -n #{name} -v #{vlan}]

  if tmp.include?("Error")
    haml :fail
  else
    haml :success
  end
end
Run Code Online (Sandbox Code Playgroud)

如果脚本遇到一个arror,它将返回一个包含单词"Error"的字符串.如果发生这种情况,我正在调用一个Haml文件,该文件将向用户显示错误页面.如果脚本没有遇到恐怖,它将返回一个成功页面.

我想在成功/失败页面中包含用户添加的新VM的名称.我的问题是我不知道如何在我的两个Haml文件中传递它.我搜索了一个解决方案,但没有找到任何东西.

ruby haml sinatra

22
推荐指数
2
解决办法
9293
查看次数

#Hash>的未定义方法`bytesize'

我想将博客标签存储和更新到GAE中的数据存储区.当我运行该代码时,我收到此错误:

javax.servlet.ServletContext log: Application Error
/base/data/home/apps/yet-another-problem/1.334886515480009498/WEB-INF/gems/gems/sinatra-0.9.2/lib/sinatra/base.rb:45:in `each': undefined method `bytesize' for #<Hash:0x86684c> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

代码

class Labels
   class LabelData
    include Bumble
    ds :blog_element_labels
   end

  def update
    response = URLFetch.get($label_url)
    result = response.to_s
    result_headless = result.gsub("listLabels(",'')
    pure_result = result_headless.gsub(");",'')
    json_to_yaml = YAML::load(pure_result)['entry']['category']

    json_to_yaml.each do |label|
    @label = LabelData.find(:blog_element_labels => label['term'])
    @label = LabelData.create(:blog_element_labels => label['term']) if @label.nil?
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

并由cron job运行'/ job'

get '/job' do
  @labels = Labels.new
  @labels.update
end
Run Code Online (Sandbox Code Playgroud)

问题出在哪儿?请教我.

但是当第一次运行cron作业时,标签数据被存储,甚至发生错误.无法更新数据.

ruby google-app-engine jruby sinatra

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

我如何使用sinatra进行html表单?

是否有一些实用程序可用,以便我可以轻松地封装在对象中的请求中传递的表单字段,或者我是否必须通过解析每个请求中的params字段来自己创建它?

ruby sinatra

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

如何在Sinatra应用程序中获取所有URL参数

使用以下Sinatra应用程序

get '/app' do
  content_type :json
  {"params" => params}.to_json
end
Run Code Online (Sandbox Code Playgroud)

调用:

/app?param1=one&param2=two&param2=alt

给出以下结果:

{"params":{"param1":"one","param2":"alt"}}

Params只有两个键,param1和param2.

我理解Sinatra将params设置为哈希值,但它并不代表所有的URL请求.

在Sinatra中有没有办法获取请求中发送的所有URL参数的列表?

ruby sinatra

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

Python相当于Sinatra

我知道很多人在使用Ruby编程webapps时会使用Sinatra,因为他们不希望他们的框架通过强制他们使用MVC而妨碍他们.

Python中有类似的东西吗?我正在寻找一个框架,它提供了Python和Web之间的粘合剂,而不是更多.我看过Web.py,但它似乎并不是我想要的.

编辑:请不要只是链接到随机框架,还要说明它们与其他框架的比较,以及它们具有哪些特殊功能.

python model-view-controller sinatra web.py

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

对于Sinatra app,"puts"输出没有显示在Heroku日志中

我正在尝试使用"puts"来测试一些在Heroku上托管的Sinatra应用程序.有趣的是,输出似乎排队并且仅在重新启动Heroku dyno时显示.我试过'Thin'和'Webrick',但也有同样的问题.

有什么想法吗?

ruby heroku sinatra puts

21
推荐指数
1
解决办法
4298
查看次数

如何在Sinatra中制作布局模板?

我是Sinatra的新手,我无法弄清楚应用程序布局的位置.

我见过使用的内联方法

# app code    
__END__

@@layout
  %html
    = yield
Run Code Online (Sandbox Code Playgroud)

但我希望布局在它自己的.haml文件中.

布局文件应该命名为什么?它应该放在什么目录中?

layout templates sinatra

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