小编Mic*_*win的帖子

将两个数组合并为Hash

我有两个阵列:

members     = ["Matt Anderson", "Justin Biltonen", "Jordan Luff", "Jeremy London"]
instruments = ["guitar, vocals", "guitar", "bass", "drums"]
Run Code Online (Sandbox Code Playgroud)

我想要做的是组合这些,以便生成的数据结构像这样的哈希:

{"Matt Anderson"=>["guitar", "vocals"], "Justin Biltonen"=>"guitar", "Jordan Luff"=>"bass", "Jeremy London"=>"drums"}
Run Code Online (Sandbox Code Playgroud)

请注意,"Matt Anderson"的值现在是数组而不是字符串.任何Ruby巫师都在关注这个问题吗?

我知道几乎按照我想要的方式Hash[*members.zip(instruments).flatten]将它们组合在一起,但是首先将"吉他,人声"字符串转换为数组呢?谢谢.

ruby

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

活动管理员:仅自定义新表单

我正在使用Active Admin为某些模型提供管理员.我需要为其中一个提供自定义的新表单,但将编辑表单保留为Active Admin提供的默认表单.这就是我所拥有的.它的工作原理是它给了我想要的新表单,但编辑表单也使用了新表单,这不是我想要的:

ActiveAdmin.register Document do
  form :partial => 'form'
end
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它给出了一个错误,'new'是一个未定义的方法:

ActiveAdmin.register Document do
  new do
    form :partial => 'form'
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails activeadmin

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

Mac OS X Lion不再识别environment.plist?

刚刚安装了Lion,我的PATH env变量不再由〜/ .MacOSX/environment.plist设置.有什么变化吗?似乎找不到任何关于它或如何修复的信息.有任何想法吗?

这是PLIST的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PATH</key>
    <string>/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11/bin:/Users/mdi/bin</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

macos osx-lion

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

使用机架安装的多个Sinatra应用程序

我有一个关于在Sinatra上使用机架安装的问题.我有两个经典风格的Sinatra应用程序.让我们调用app.rb中定义的一个App和api.rb中定义的另一个API.

我希望它能让api.rb处理所有以'/ api'开头的路由,而app.rb会处理所有其他请求,包括root('/').

如何使用机架安装进行设置?或者有更好的解决方案吗?

ruby sinatra

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

法拉第超时

我在网上搜索了文档和其他地方,似乎无法想出为法拉第设置超时选项的正确方法.有人有答案吗?

我试过了:

  conn = FaradayStack.build(url)
  conn.headers[:user_agent]   = AppConfig.user_agent
  # conn.options[:timeout]      = 20
  # conn.options[:open_timeout] = 20
  response = conn.get do |req|
    req.options = {
      :timeout      => 20,
      :open_timeout => 20
    }
  end
  response.body
Run Code Online (Sandbox Code Playgroud)

似乎没有什么工作.顺便说一句,我使用Typhoeus适配器,如果这有所作为.

ruby

9
推荐指数
2
解决办法
9311
查看次数

如何访问数组数组深处的元素而不出现“未定义方法”错误

当尝试访问数组数组深处的元素时,如果元素不存在,避免出现错误“undefined method `[]” for nil:NilClass”的最佳方法是什么?

例如,我目前正在这样做,但对我来说似乎很糟糕:

if @foursquare['response']['groups'][0].present? && @foursquare['response']['groups'][0]['items'].present?
Run Code Online (Sandbox Code Playgroud)

ruby hash hash-of-hashes

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

如何使用RSpec进行测试?

使用RSpec,我想测试在方法中调用某些方法.采用以下示例类:

class Upload < ActiveRecord::Base
    def process
      case self.file_name
      when /\.html$/
        to_pdf
      end
    end
end
Run Code Online (Sandbox Code Playgroud)

在file_name ='foo.html'的上传实例上to_pdf调用时,如何测试process?如果可能的话,我想使用测试双.

ruby rspec

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

Rails UTF-8响应

我有一个在Ruby 1.9.3上运行的Rails 3.2应用程序,它返回存储在MongoDB数据库中的JSON数据.数据似乎正确存储在mongo中,例如(查看name属性):

{ "_id" : ObjectId("4f986cbe4c8086fdc9000002"), "created_at" : ISODate("2012-04-25T21:31:45.474Z"), "updated_at" : ISODate("2012-04-26T22:07:23.901Z"), "creator_id" : ObjectId("4f6b4d3c4c80864381000001"), "updater_id" : null, "name" : "Trädgår'n", "sort" : "tradgarn", "address" : "Nya Allén 11", "coordinates" : [ 11.9764791, 57.7045625 ], "phone" : "46031102080", "url" : "http://www.profilrestauranger.se/tradgarn/", "user_ids" : [ ] }
Run Code Online (Sandbox Code Playgroud)

但是当我发出一条返回此记录的请求时,我得到了类似的内容(现在查看name属性):

{"address":"Nya All\u00e9n 11","coordinates":[11.9764791,57.7045625],"created_at":"2012-04-25T23:31:45+02:00","id":"4f986cbe4c8086fdc9000002","name":"Tr\u00e4dg\u00e5r'n","phone":"46031102080","sort":"tradgarn","updated_at":"2012-04-27T00:07:23+02:00","url":"http://www.profilrestauranger.se/tradgarn/"}
Run Code Online (Sandbox Code Playgroud)

感兴趣的人的响应标题:

HTTP/1.1 200 OK
Server: nginx/1.2.0
Date: Thu, 26 Apr 2012 22:41:13 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 909
Connection: keep-alive
Status: 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS …
Run Code Online (Sandbox Code Playgroud)

encoding ruby-on-rails-3

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

使用"Ember"方式呈现侧边栏

使用Ember.js v1.2.0,我正在尝试将侧边栏模板渲染到命名插座中.模板可能根据当前路线而不同.我正在努力想出"Ember"这样做的方法.

这是我到目前为止的要点:

应用程序/模板/ application.hbs

{{outlet sidebar}}
Run Code Online (Sandbox Code Playgroud)

应用程序/路线/的application.js

var ApplicationRoute = Ember.Route.extend({
  renderTemplate: function(controller, model) {
    var sidebar = controller.get('sidebar') || 'application';
    this._super();
    this.render('sidebar/' + sidebar, {
      into: 'application',
      outlet: 'sidebar'
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

应用程序/路由/ docs.js

var DocsRoute = Ember.Route.extend({
  renderTemplate: function(controller, model) {
    this.controllerFor('application').set('sidebar', 'docs');
    this.render();
  }
});
Run Code Online (Sandbox Code Playgroud)

这不是真的有效,而且感觉不太Ember-ish.救命?

javascript ember.js

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

通知Angular 2组件对服务的更改

使用Angular 2,我有一个处理身份验证的AuthService。我试图找出当用户登录/注销时通知其他组件的最佳方法,但是不确定如何处理这种情况。有什么建议么?谢谢!

authentication typescript angular

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

PHP懒惰的评价

我正在尝试使用PHP进行惰性变量评估.受控示例代码:

<?php

function title($page)
{
    return $page . ' - $_GET["title"]';
}

?>


<title><?= title($_SERVER['SCRIPT_NAME']) ?></title>
Run Code Online (Sandbox Code Playgroud)

$_GET['title']没有被评估.我怎样才能做到这一点?

php

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