小编Phr*_*ogz的帖子

如何打电话或激活课程?

在我的lib文件夹中,我有billede.rb:

class Billede
  require 'RMagick'
  #some code that creates a watermark for a image
  image.write(out)
end
Run Code Online (Sandbox Code Playgroud)

我如何致电/激活课程?是将它更改为Rake任务的唯一方法吗?

ruby

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

指定方法参数的允许值

就像在标题中一样 - 例如我有一个方法DrawMe(what),我想允许在what参数等于其中一个值时运行此方法:{"house", "garden", "cat", "dog"}- 如果不是,则应停止此方法并应打印错误.有任何想法吗?

ruby ruby-on-rails

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

正则表达式确保特定单词不会出现在模式的中间

我有一个正则表达式匹配列表中的一系列字符,但我想阻止它匹配一个单词.

我的正则表达式是:

^widget/([\w\d~]+)/?(?:[\w\d~]+)/?$
Run Code Online (Sandbox Code Playgroud)

我希望它像这样匹配:

  • widget/JQYHHU - 视图小部件,应该匹配
  • widget/JQYHHU/ - 视图小部件,应该匹配
  • widget/JQYHHU/bag-of-screws - 视图小部件,应该匹配
  • widget/JQYHHU/bag-of-screws/ - 视图小部件,应该匹配
  • widget/add-查看部件,应该匹配
  • widget/add/-查看部件,应该匹配

是否可以添加条件以匹配字符,但是如果它们拼写单词"add"则不能?

regex

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

将数组转换为字符串

我需要将哈希的输出加入到字符串中.

哈希看起来像这样:

 nas.location.walledgardens.to_s

  => "[#<Walledgarden id: 1, location_id: 12, url: \"polka.com\", created_at: \"2012-05-14 17:02:47\", updated_at: \"2012-05-14 17:02:47\">, #<Walledgarden id: 2, location_id: 12, url: \"test.com\", created_at: \"2012-05-14 17:02:47\", updated_at: \"2012-05-14 17:02:47\">, #<Walledgarden id: 3, location_id: 12, url: \"help.com\", created_at: \"2012-05-14 17:02:47\", updated_at: \"2012-05-14 17:02:47\">, #<Walledgarden id: 4, location_id: 12, url: \"yell.com\", created_at: \"2012-05-14 17:02:47\", updated_at: \"2012-05-14 17:02:47\">, #<Walledgarden id: 5, location_id: 12, url: \"sausage.com\", created_at: \"2012-05-14 17:02:47\", updated_at: \"2012-05-14 17:02:47\">]" 
Run Code Online (Sandbox Code Playgroud)

我需要将url值加入以下格式:

polka.com,test.com,help.com
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?我可以轻松地浏览它,但输出有换行符,我需要删除这些以及逗号.

ruby ruby-on-rails

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

按发生次数排序和显示项目

我发现自己一再想要计算数组中项目的出现次数,并显示顶部项目及其实际计数.我已经编写了如下代码,这么多次我认为它是一个反复出现的RSI诱导模式:

hits = Hash[ array.group_by{|o|o}.map{|o,a|[o,a.length]}.sort_by{|o,ct|[-ct,o]} ]

require 'pp'
pp hits
Run Code Online (Sandbox Code Playgroud)

我可以将它移动到Enumerable上的monkeypatch ...

module Enumerable
  def counts(&blk)
    blk ||= ->(o){o}
    Hash[ group_by(&blk).map{|o,a| [o,a.length] }.sort_by{|o,ct| [-ct,o] } ]
  end
end

a = %w[a b a b c d e g j a e c d k o k i l p a e c f d e a d e f s d v c ]
pp a.counts
#=> {"a"=>5,
#=>  "d"=>5,
#=>  "e"=>5,
#=>  "c"=>4,
#=>  "b"=>2,
#=>  "f"=>2,
#=>  "k"=>2, …
Run Code Online (Sandbox Code Playgroud)

ruby

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

使用运行时确定的属性定义结构体

我注意到 Ruby 的理念是在运行时保持尽可能多的灵活性。

这是一个典型的(据我所知)Ruby 结构定义:

    Person = Struct.new("Person", :name, :address)
    Person.new("John", "Chicago, IL")
Run Code Online (Sandbox Code Playgroud)

我的问题是,当结构字段/成员列表也在运行时定义时,是否可以在运行时定义结构?看起来像这样的东西:

    Person = Struct.new("Person", list_of_structure_fields)
Run Code Online (Sandbox Code Playgroud)

ruby

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

如何用\ n字符替换新行

存储在数据库中的数据是这样的:

This is a line

This is another line

How about this line
Run Code Online (Sandbox Code Playgroud)

当我将其输出到视图时,我想将其转换为:

This is a line\n\nThis is another line\n\nHow about this line
Run Code Online (Sandbox Code Playgroud)

没有新行,并\n打印出实际字符。我怎样才能做到这一点?

ruby ruby-on-rails

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

考虑单个哈希键值合并哈希数组

我有一系列像这样的哈希.

[
 {"package_details"=>{"name"=>"Package3", "price"=>3000.0, "id"=>"281"},"event_id"=>336},
 {"package_details"=>{"name"=>"2000/-", "price"=>2000.0, "id"=>"280"}, "event_id"=>337}, 
 {"package_details"=>{"name"=>"Package1", "price"=>1000.0, "id"=>"282"},"event_id"=>337},
 {"package_details"=>{"name"=>"Package2", "price"=>2000.0, "id"=>"283"},"event_id"=>337}
]
Run Code Online (Sandbox Code Playgroud)

我希望这就像这样.

[
  {"event_id"=>336, "package_details"=>[
    {"name"=>"Package3", "price"=>3000.0, "id"=>"281"}
  ]},
  {"event_id"=>337, "package_details"=>[
    {"name"=>"2000/-", "price"=>2000.0, "id"=>"280"},
    {"name"=>"Package1", "price"=>1000.0, "id"=>"282"},
    {"name"=>"Package2", "price"=>2000.0, "id"=>"283"}
  ]},
]
Run Code Online (Sandbox Code Playgroud)

哈希应该根据相等的event_id值进行合并,并且事件可以包含许多包.

我想知道最简单的方法.虽然我可以做很多if和else s.

ruby

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

在表单中乘以两个值

对于我的代码,我试图将2个参数调用到函数中.离开第二个输入框后,将两个数字相乘并将其放在第三个文本框中.如果前两个输入框中的任何一个为空,则将它们涂成浅红色.到目前为止这是我的代码,我错过了什么?

使用Javascript:

function multiply(one, two) {
if(one==""){
this.style.color='red';
}
if(two==""){
this.style.color='red';
}
else{
txt1=one * two;
return txt1;
}

}
Run Code Online (Sandbox Code Playgroud)

HTML5:

First Value: <input type="text" name="mFirst" />
Second Value: <input type="text" name="mLast" onblur="multiply(mFirst.value, mLast.value)" />
Multiplication of First and Second Value: <input type="text" name="answer">
Run Code Online (Sandbox Code Playgroud)

html javascript html5

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

\ w +如何选择整个单词?

在一个简单的正则表达式中,我理解这一点

\w
Run Code Online (Sandbox Code Playgroud)

给出一个单词字符; 但是,我不知道如何添加加号(+):

\w+
Run Code Online (Sandbox Code Playgroud)

选择整个单词.在我看来,加号只意味着一个或多个单词字符,所以我不明白它将如何扩展到整个单词.

regex

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

标签 统计

ruby ×7

ruby-on-rails ×3

regex ×2

html ×1

html5 ×1

javascript ×1