小编doc*_*nge的帖子

如何在ruby中通过哈希值在哈希数组中进行搜索?

我有一系列哈希,@ fathers.

a_father = { "father" => "Bob", "age" =>  40 }
@fathers << a_father
a_father = { "father" => "David", "age" =>  32 }
@fathers << a_father
a_father = { "father" => "Batman", "age" =>  50 }
@fathers << a_father 
Run Code Online (Sandbox Code Playgroud)

如何搜索此数组并返回一个块返回true的哈希数组?

例如:

@fathers.some_method("age" > 35) #=> array containing the hashes of bob and batman
Run Code Online (Sandbox Code Playgroud)

谢谢.

ruby arrays hash search

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

Rails has_many带别名

在我的用户模型中,我可以:

has_many :tasks
Run Code Online (Sandbox Code Playgroud)

在我的任务模型中:

belongs_to :user
Run Code Online (Sandbox Code Playgroud)

然后,假设外键'user_id'存储在tasks表中,我可以使用:

@user.tasks
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何声明has_many关系,以便我可以将用户的任务称为:

@user.jobs
Run Code Online (Sandbox Code Playgroud)

... 要么 ...

@user.foobars
Run Code Online (Sandbox Code Playgroud)

谢谢你的一堆.

ruby-on-rails has-many

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

在Ruby中从另一个数组中减去一个数组

我有两个任务数组 - 创建和分配.我想从创建的任务数组中删除所有已分配的任务.这是我工作但很乱的代码:

    @assigned_tasks = @user.assigned_tasks
    @created_tasks = @user.created_tasks

    #Do not show created tasks assigned to self
    @created_not_doing_tasks = Array.new
    @created_tasks.each do |task|
        unless @assigned_tasks.include?(task)
            @created_not_doing_tasks << task
        end
    end
Run Code Online (Sandbox Code Playgroud)

我相信有更好的方法.它是什么?谢谢 :-)

ruby arrays array-difference

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

如何在ruby中测试正则表达式的WHOLE字符串?

如何对正则表达式的字符串,如果整个字符串匹配(不是子字符串),它将返回true ?

例如:

test( \ee\ , "street" ) #=> returns false
test( \ee\ , "ee" ) #=> returns true!
Run Code Online (Sandbox Code Playgroud)

谢谢.

ruby regex string

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

在Ruby中传递多个代码块作为参数

我有一个采用代码块的方法.

def opportunity
  @opportunities += 1
  if yield
    @performances +=1
  end
end
Run Code Online (Sandbox Code Playgroud)

我称之为:

opportunity { @some_array.empty? }

但是我如何传递多个代码块以便我可以使用yield两次,如下所示:

def opportunity
  if yield_1
    @opportunities += 1
  end
  if yield_2
    @performances +=1
  end
end
Run Code Online (Sandbox Code Playgroud)

和:

opportunity {@some_other_array.empty?} { @some_array.empty? }
Run Code Online (Sandbox Code Playgroud)

我知道这个例子可以在没有收益的情况下完成,但这只是为了说明.

ruby yield

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

优雅的ruby语法返回两个对象中较大的一个

当然有一千种方法可以完成这项工作,但这是实现这一目标的最简单(或最优雅)的方法吗?

[4,8].max
Run Code Online (Sandbox Code Playgroud)

这实际上并不太破旧,但你会怎么做?

ruby comparison

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

测试Ruby on Rails中的单词是单数还是复数

快问.

如何测试一个单词以查看它是单数还是复数?

我真的很喜欢:

test_singularity('word') # => true
test_singularity('words') # => false
Run Code Online (Sandbox Code Playgroud)

我打赌铁路有能力!

谢谢.

ruby-on-rails helpers pluralize singular

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

如何在拉斐尔的路径上实现"甜甜圈洞"

我想绘制一个有孔的形状,这样我就可以fill塑造它而不会让孔充满那种颜色(让它们保持透明).

根据W3路径规范:

复合路径(即,具有多个子路径的路径)可以允许诸如对象中的"环形孔"之类的效果.

有人可以举一个非常简单的例子说明如何在拉斐尔用矢量路径执行此操作吗?

非常感谢.

svg vector path raphael

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

Rails send_data抛出"UTF-8中的无效字节序列"......但为什么呢?

我正在使用Rails生成带有可执行文件wkhtmltopdf的PDF,然后使用send_data将结果作为PDF文件发送回用户.

 view = ActionView::Base.new(ActionController::Base.view_paths,  {})
 html = "<h1>A heading</h1>"
 pdfdata = `echo '#{html}' | #{RAILS_ROOT}/lib/pdf/wkhtmltopdf-i386 - -`
 send_data pdfdata, :filename => 'readthis.pdf', :disposition => 'attachment', :type => "application/pdf"
Run Code Online (Sandbox Code Playgroud)

PDF生成正确,但Rails ArgumentError (invalid byte sequence in UTF-8)从send_data方法抱怨.更改它以发送"foobar" :type => text/html使其工作,所以它肯定有问题pdfdata.

我不明白.是不是send_data应该发送二进制数据?当然它不是有效的UTF-8.或者我错过了什么?

谢谢

ruby-on-rails utf-8

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

使用Firefox Add-on SDK进行面板定位

我正在尝试使用新SDK将我的面板定位在附加组件中.

我看到文档只显示了一种控制面板位置的方法,那就是通过传递一个锚点show():

秀(锚)

显示面板.[锚:手柄]

页面中DOM节点的句柄,面板应该显示为锚定的页面.如果没有给出,面板将在最近的浏览器窗口中居中.请注意,目前无法仅使用高级API以这种方式锚定面板.

理想情况下,我希望锚点是当单击该窗口小部件时面板显示为锚定的窗口小部件,但窗口小部件不是,DOM node in a page所以我猜不是......

我可以解决这个问题,但我甚至找不到如何将面板锚定到DOM节点的工作示例.当我传回一个DOM节点在contentScript经过port是这样的:

LIB/main.js

  var scraper = pageMod.PageMod({
    include: ['*'],
    contentScriptWhen: 'ready',
    contentScriptFile: [data.url('jquery-1.6.2.min.js'), data.url('scraper.js')],
    onAttach: function(worker){
      worker.port.on('pageLoaded', function(page){
        widget.panel.show(page.anchor);
      }); 
    } 
Run Code Online (Sandbox Code Playgroud)

数据/ scraper.js

$('body').append('
  <div id="anchor-to-me" style="position:fixed; bottom: 0; right: 0;">.</div>
');

var anchor = $('#anchor-to-me').get();
self.port.emit('pageLoaded', { anchor : anchor  }); 
Run Code Online (Sandbox Code Playgroud)

我收到以下控制台错误:

error: An exception occurred.
Traceback (most recent call last):
  File "resource://jid1-wuvxefqtmptsnw-at-jetpack-addon-kit-lib/panel.js", line 147, in show
    let document = …
Run Code Online (Sandbox Code Playgroud)

javascript firefox-addon firefox-addon-sdk

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