小编Cha*_*ies的帖子

在Ruby中设置请求标头

我有其余的客户端gem,我正在定义这样的请求:

url = 'http://someurl'
request =  {"data" => data}.to_json
response = RestClient.post(url,request,:content_type => :json, :accept => :json)
Run Code Online (Sandbox Code Playgroud)

但是我需要将HTTP标头设置为某种东西.例如API密钥.这可以在curl中完成:

curl -XHEAD -H x-auth-user: myusername -H x-auth-key: mykey "url"
Run Code Online (Sandbox Code Playgroud)

什么是在红宝石中做到这一点的最好方法?用这个宝石?或者我可以手动执行以获得更多控制权.

ruby rest

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

清漆缓存日志无法正常工作

varnishlog正在返回:

_.vsm: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有没有人见过这个?

varnish

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

在CoffeeScript中查找范围

我理解如何在CoffeeScript中定义数组范围

lng[1..10]
Run Code Online (Sandbox Code Playgroud)

但是,如果我有

data = 10
Run Code Online (Sandbox Code Playgroud)

如果10在1和11的范围内,最好的方法是什么?

if data is between(1..11)
  return true
Run Code Online (Sandbox Code Playgroud)

coffeescript

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

单张地图加载半灰色瓷砖

我在div中有一个传单地图,我喜欢这样:

  <script src="http://cdn.leafletjs.com/leaflet-0.4/leaflet.js"></script>

  <!--[if lt IE 9]>
  <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->
  <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.4/leaflet.css" />
  <!--[if lte IE 8]>
  <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.4/leaflet.ie.css" />
  <![endif]-->
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
Run Code Online (Sandbox Code Playgroud)

然后我有一个像这样的div:

一些加载地图的js:

map = L.map($attrs.id,
                         center: [40.094882122321145, -3.8232421874999996]
                         zoom: 5
      )
      L.tileLayer("http://{s}.tile.cloudmade.com/57cbb6ca8cac418dbb1a402586df4528/997/256/{z}/{x}/{y}.png",
                  maxZoom: 18
      ).addTo map
Run Code Online (Sandbox Code Playgroud)

然后在页面加载我有一些监视窗口高度和调整大小的JS:

$("#map").height($(window).height())
$(window).resize(_.throttle(->
  $("#map").height($(window).height())
, 100
))
Run Code Online (Sandbox Code Playgroud)

但是,当地图加载时,一半的灰色加载.当我调整地图大小时加载正常,但初始加载是1/2灰色

coffeescript leaflet

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

模糊/损坏的Google地图控件

我在谷歌地图应用程序上看到了一些非常奇怪的行为.我正在使用Backbone:

  initialize: ->
    osmMapType = new google.maps.ImageMapType(
      getTileUrl: (coord, zoom) ->
        "http://tile.openstreetmap.org/#{zoom}/#{coord.x}/#{coord.y}.png"
      tileSize: new google.maps.Size(256, 256)
      isPng: true
      alt: "OpenStreetMap layer"
      name: "OSM"
      maxZoom: 19
    )

    cloudMadeMapType = new google.maps.ImageMapType(
      getTileUrl: (coord, zoom) ->
        "http://b.tile.cloudmade.com/a97cc0871d97477b911c3f9155a93ee7/26250/256/#{zoom}/#{coord.x}/#{coord.y}.png"
      tileSize: new google.maps.Size(256, 256)
      isPng: true
      alt: "CloudMade layer"
      name: "CMade"
      maxZoom: 13
    )

    lat = 51.503
    lng = -0.113
    latlng = new google.maps.LatLng(lat, lng)
    options =
      zoom: 10
      center: latlng
      mapTypeId: 'OSM'
    @gMap = new google.maps.Map(document.getElementById("map"), options)
    @gMap.mapTypes.set('OSM', osmMapType)
    @gMap.mapTypes.set('CloudMade', cloudMadeMapType)
    @gMap.setMapTypeId(google.maps.MapTypeId.TERRAIN)
Run Code Online (Sandbox Code Playgroud)

我正在加载API:

<script …
Run Code Online (Sandbox Code Playgroud)

google-maps google-maps-api-3 google-maps-markers

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

Jruby中的Java数组

我有一个Java库,我正在从中提取一些数据.

它出了一个3D数组.但是我无能为力.

[[D[]@5615a6e0
Run Code Online (Sandbox Code Playgroud)

是我得到的回应.我试过映射它:

{ |arr| arr.map { |arr| arr.to_a } }
Run Code Online (Sandbox Code Playgroud)

但我什么都没得到,解析这个java数组的最佳方法是什么?

ruby java jruby

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

在Rails 3.1中重新加载lib文件而不重启dev服务器

我在rails中的lib文件夹中有一些模块,即:

/ LIB/MyApp的/ LIB/**

我正在开发它们,但每次我必须重新启动服务器.我在SO上遇到了很多不同的问题,但大多数问题都不适用于rails 3.1

我目前有一个初始化器,可以做到这一点;

if Rails.env == "development"
  lib_reloader = ActiveSupport::FileUpdateChecker.new(Dir["lib/**/*"], true) do
    Rails.application.reload_routes! # or do something better here
  end

  ActionDispatch::Callbacks.to_prepare do
    lib_reloader.execute_if_updated
  end
end

if Rails.env == "development"
  lib_reloader = ActiveSupport::FileUpdateChecker.new(Dir["lib/myapp/lib/*"], true) do
    Rails.application.reload_routes! # or do something better here
  end

  ActionDispatch::Callbacks.to_prepare do
    lib_reloader.execute_if_updated
  end
end
Run Code Online (Sandbox Code Playgroud)

有没有通用的方法来做到这一点?每次都要重启服务器非常耗时!

ruby ruby-on-rails

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

在页面加载上加载Twitter Bootstrap Popover

我有以下BootStrap popover:

<a href='#' id='example' rel='popover' data-placement='left' data-content='Its so simple to create a tooltop for my website!' data-original-title='Twitter Bootstrap Popover'>HEY</a>
Run Code Online (Sandbox Code Playgroud)

我希望在页面加载时显示它,所以我补充说

$('#example').popover('show')
Run Code Online (Sandbox Code Playgroud)

在文档末尾的函数如下:

<script>
$(function ()
{ $("#example").popover(show);
});
</script>
Run Code Online (Sandbox Code Playgroud)

但什么都没发生.

在页面加载时我什么都没得到.但是,当我$('#example').popover('show')在控制台中运行时,我得到了popover工作.如何在页面加载时显示popover?

javascript jquery twitter-bootstrap

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

Ruby Hash不工作API - 冒号

我试图使用Ruby通过JSON/REST查询api.

require 'rubygems'
require 'rest-client'
require 'json'


###Request Build#####
url = 'http://site_name'
request ={
     "format"=>'json',
     "foo"=> {"first"=>1.1,"second"=>2.2},
     "foo_1"=>300,
     "foo_2"=>"speed",
     "foo_3"=>[
         {"id"=> "abc123", "first"=> 1.8, "second"=> 2.8},
         {"id"=> "abc456", "first"=> -1.5, "second"=> 1.2}
         ]
}.to_json

### go go go ###
response = RestClient.post(url,request, :content_type => :json, :accept => :json)
puts response
Run Code Online (Sandbox Code Playgroud)

以上工作,它会查询api就好了.但是我正在使用的API文档说我应该使用":"代替"=>"

     "format":'json',
     "foo":{"first":1.1,"second":2.2},
     "foo_1":300,
     "foo_2":"speed",
     "foo_3":[
         {"id":"abc123", "first":1.8, "second":2.8},
         {"id":"abc456", "first":-1.5, "second":1.2}
         ]
}
Run Code Online (Sandbox Code Playgroud)

当我使用它们时,我收到此错误:

new.rb:10: syntax error, unexpected ':', expecting tASSOC
     "format":'json',
Run Code Online (Sandbox Code Playgroud)

我想知道为什么会这样?红宝石不喜欢用":"哈希吗?我问的原因是在foo_3上我有一个json文件我希望放入格式如下:

     [{"id":"abc123","first":1.8, "second": 2.8},
     {"id":"abc456","first":-1.5, "second": 1.2}] …
Run Code Online (Sandbox Code Playgroud)

ruby

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

如何使用Highrise Ruby gem添加Person?

当人们注册应用程序时,我正在尝试使用https://github.com/tapajos/highrise/来更新用户帐户.但是我没有走得太远.

在控制台我正在做:

person = Highrise::Person.create(:name => "charlie")
Run Code Online (Sandbox Code Playgroud)

哪个节省很好,但如果我做了类似的事情

person = Highrise::Person.create(:name => "charlie", :email => "charlie@222.com")
Run Code Online (Sandbox Code Playgroud)

然后我得到:

Unprocessable Entity
Run Code Online (Sandbox Code Playgroud)

我无法理解这一点,我基本上想要添加一个完整的记录:

person = Highrise::Person.create(:name => "charlie", :params => {:contact_data => {:email_addresses => "charlie@222.com"}})
Run Code Online (Sandbox Code Playgroud)

但我仍然得到相同的错误,在网上找不到任何例子

ruby highrise

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