标签: sinatra

用regexp创建空间

我有一个sinatra应用程序,我计划在飞行中制作一个油炸的网址.我有一个看起来像这样的正则表达式的函数,但它不会将'空格'转换为'破折号',''转换为' - '.

def self.make_slug(title)
  title.downcase.gsub(/ /, '-').gsub(/[^a-z0-9_]/, '').squeeze('-')
end
Run Code Online (Sandbox Code Playgroud)

提前致谢!

更新

现在我也试图将åä改为a和ö到o,我的代码看起来像这样但不起作用,任何想法?

gsub(/[åä]/, 'a')
gsub(/[ö]/, 'o')
Run Code Online (Sandbox Code Playgroud)

ruby regex sinatra

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

如何在Ruby Sinatra中发送列表值?

我有一个简单的表格,其中有一个列表:

     <form method ="post" action ="">
     <select>Select subject
        <option value="1">Maths</option>  
        <option value="2">Science</option>
     </select>
      <input type="submit" name="Submit" />
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我选择Maths选项,我希望将值发送到例如/ 1.什么应该写在行动?怎么写这条路线?

       get '' do 


       end
Run Code Online (Sandbox Code Playgroud)

ruby sinatra

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

使用RegExp的Sinatra路由参数

我正在尝试创建一个小的sinatra示例,它将打印一个月,日或年的日历视图,具体取决于URL.这样

localhost:4567/calendar/2012将打印年视图日历

localhost:4567/calendar/2012/9将打印一个月的日历

localhost:4567/calendar/2012/9/15将打印日视图日历

我有这个工作:

require 'sinatra'

get '/calendar/:year/:month/:day/?' do
    "printing daily calendar for #{params[:year]}/#{params[:month]}/#{params[:day]}"
end

get '/calendar/:year/:month/?' do
    "printing monthly calendar for #{params[:year]}/#{params[:month]}"
end

get '/calendar/:year/?' do
    "printing yearly calendar for #{params[:year]}"
end
Run Code Online (Sandbox Code Playgroud)

我的问题是,我是否可以使用某种RegEx进一步优化这些路由,以便我可以说如果:month部分在1到12之间并且:day部分在1到31之间,则仅计算url?

ruby regex sinatra

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

在ajax请求之后,脚本不再起作用

页面上有一个表格,我通过ajax更新.有些脚本使用表的内容.例如,其中一个使用Check all / Uncheck all表上的" "复选框到该表上check/uncheck的其他复选框.

当我执行ajax请求时,它返回几乎相同的表内容.至少,它绝对是正确的,不应该破坏脚本的功能.但是,之后没有任何脚本不再起作用.为什么?

例如,以下是*.js文件中javascript代码的一部分:

$(document).ready(function() {
  $("#check-all").change(function(){
      $(".my_table input[type=checkbox]").prop('checked', this.checked);
    });
});
Run Code Online (Sandbox Code Playgroud)

在执行ajax之前,请求一切正常.请注意,ajax不会返回任何javascript代码,所有javascript代码都位于外部js文件中.

javascript ruby ajax jquery sinatra

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

RMagick&Sinatra:将照片发送到视图而不存储

目前我正在编写一个Sinatra应用程序,它从用户那里获取一些图片并返回一张新图片.

有一部分haml形式:

  %input{type:'file', name:'user_image'}
Run Code Online (Sandbox Code Playgroud)

还有来自处理程序的代码:(蒙太奇是另一张图片)

  source_userpic = params[:user_image][:tempfile]
  blob = File.open(source_userpic).read
  userpic = ImageList.new
  userpic.from_blob(blob)
  resized_img = userpic.scale(montage.columns,
                              montage.rows)
  resized_img.opacity = MaxRGB/3
Run Code Online (Sandbox Code Playgroud)

然后两个图像"复合"并存储(不需要)

  final_picture = ImageList.new
  final_picture << montage.composite(resized_img, 0, 0, OverCompositeOp)


  final_picture.write("./public/uploads/#{DateTime.now}.jpg" # dirty (for example)
Run Code Online (Sandbox Code Playgroud)

接下来,我需要使用ajax显示final_picture.有两个明显的问题:第一,我不需要保存final_picture - 它只是预览,第二,我必须编写代码以避免文件名冲突...

如何发送final_picture来查看?to_blob方法?但下一步是什么?

image rmagick sinatra

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

Sinatra和AngularJS之间的CORS问题

我有一个非常基本的网络应用程序的麻烦.这是我的文件:

公共/ index.html的

<!DOCTYPE html>

<html lang="en" data-ng-app>
  <body>

    <div data-ng-controller="PlayersCtrl">
      <div data-ng-repeat="player in players">
        {{player.id}}
      </div>
    </div>

    <script src="/angular.min.js"></script>
    <script src="/players.js"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

公共/ players.js

function PlayersCtrl($scope, $http) {
  $scope.players = [];

  $http({
    method: 'GET',
    url: 'http://localhost:9292/hi'
  }).success(function(data) {
    $scope.players = data;
  });
}
Run Code Online (Sandbox Code Playgroud)

client.rb

require 'sinatra'

get '/' do
  headers 'Access-Control-Allow-Origin' => '*'
  headers 'Access-Control-Allow-Headers' => 'Authorization,Accepts,Content-Type,X-CSRF-Token,X-Requested-With'
  headers 'Access-Control-Allow-Methods' => 'GET,POST,PUT,DELETE,OPTIONS'

  send_file File.join(settings.public_folder, 'index.html')
end
Run Code Online (Sandbox Code Playgroud)

api.rb

require 'sinatra'
require 'json'

get '/hi' do
  headers 'Access-Control-Allow-Origin' => '*'
  headers …
Run Code Online (Sandbox Code Playgroud)

rest xmlhttprequest cross-domain sinatra angularjs

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

让sinatra应用程序从虚拟机提供服务

我在osx 10.8上运行vmware fusion 5,我的客户操作系统是Arch Linux,目前我能够通过ssh 172.16.4.191简单的sinatra应用程序进入客户端.

require 'sinatra'

get '/hi' do
  "Hello world!!!!!!!"
end
Run Code Online (Sandbox Code Playgroud)

ruby hi.rb

2013-04-06 19:45:18] INFO  WEBrick 1.3.1
[2013-04-06 19:45:18] INFO  ruby 2.0.0 (2013-02-24) [x86_64-linux]
== Sinatra/1.4.2 has taken the stage on 4567 for development with backup from WEBrick
[2013-04-06 19:45:18] INFO  WEBrick::HTTPServer#start: pid=426 port=4567
Run Code Online (Sandbox Code Playgroud)

我的主机操作系统无法使用它

curl 172.16.4.191:4567
curl: (7) couldn't connect to host
Run Code Online (Sandbox Code Playgroud)

任何建议都会很棒,当然我会根据需要提供更多信息.

编辑:

选择与我的mac共享,"虚拟机在外部网络上共享Mac的IP地址.mac为虚拟机的网络流量提供NAT"

编辑:

我已经切换到桥接模式,它现在坐在我的局域网上,我仍然可以进入它,仍然没有这样的运气连接到我的sinatra应用程序.

并且iptables没有显示规则

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot …
Run Code Online (Sandbox Code Playgroud)

ruby macos sinatra vmware-fusion

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

如何用红宝石获取访问者的IP?

我和Sinatra一起使用红宝石.我想获取访问者的公共IP并将其保存在数据库中,但不知道如何获取IP ...抱歉,但我还没有找到办法做到这一点.伙计们可以帮帮我吗?谢谢!

ruby sinatra

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

未初始化的恒定Sinatra

我无法运行我的Sinatra应用程序.

我收到以下错误:

application.rb:1:in `<main>': uninitialized constant Sinatra (NameError)
Run Code Online (Sandbox Code Playgroud)

这是application.rb的第1行:

class Application < Sinatra::Base
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我已经安装了Sinatra作为宝石.

ruby sinatra

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

是String.sanitize,是保护rails或sinatra应用程序中的SQL注入的最佳方法

string.sanitize是保护sql注入的最佳方法.

我们需要为它安装Sanitize gem还是有更好的方法?

value = "O'Brian"
value.sanitize =>"O\'Brian"
or 
value.escape =>"O\'Brian"
Run Code Online (Sandbox Code Playgroud)

它可能默认包含在Rails 5中,但是如何使用sinatra.

ruby sql sql-injection ruby-on-rails sinatra

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