Tag: 方法

执行随机方法

我正在尝试为执行随机方法制作逻辑。 比方说,我有10个方法,我需要随机选择其中一个。 main方法将驻留在我的Rails 3.2应用程序的ActionController中,该应用程序将包含逻辑和10个方法。

Ruby中的方法和属性有什么区别?

能给我举个例子?

Twitter API – Ruby Twitter Gem

如何访问Twitter API返回的Twitter :: Cursor哈希值? 我正在关注Jumpstartlab Microblogger教程,通过jumpstart_auth gem使用Twitter gem 。 我正在迭代4步骤1.我可以使用以下代码返回一个friends对象: def friends_last_tweets friends = client.friends puts friends end => Twitter::Cursor:0x00000104051928 但是,在这种情况下,示例帐户“客户端”有两个“朋友”而不仅仅是一个,所以为什么它只返回一个对象? 我想也许那个对象就是数组或数组,所有的朋友都相应地在哈希值中,因此使用[]来访问,但这会返回“Twitter :: Cursor的未定义方法”。 我在Twitter :: Cursor对象上运行each ,它返回两个fixnums: def friends_last_tweets friends = client.friends friends.each { |f| puts f } end => 18908095 108528349 所以这些数字肯定必须代表我认为的Twitter :: Cursor对象中的每个“朋友对象”。 我需要访问该对象中的键/值对,但我尝试的哈希访问导致未定义的方法或变量。 如果它的版本问题相关,我使用的是Twitter5.11.0和Jumpstart_auth 0.6.0。

将方法传递给迭代器方法时发生了什么

我们知道,wo可以通过&:前缀将方法传递给迭代器方法。 例如: [“a”, “b”].map(&:upcase) #=> [“A”, “B”] def rettwo 2 end [“a”, “b”].map(&:rettwo) #=> [2, 2] 这是问题所在,当我编写一个方法时,将一个带有&:前缀的方法传递给它,我收到一条错误消息:“ArgumentError:no receiver given”。 让我展示代码: def a_simple_method &proc puts proc.class # it shows `Proc` proc.call end def a_iterator_method puts yield end a_simple_method &:rettwo #=> ArgumentError: no receiver given a_iterator_method &:rettwo #=> ArgumentError: no receiver given 我缺少什么,像Array的方法这样的map如何处理它

为什么我的helper递归方法不返回每个值?

我想显示一个用gem祖先管理的类别树。 我想使用一个帮助器,它将递归遍历树并逐个返回类别,目前没有html标签或内容。 module CategoriesHelper def display_tree(category) if category.has_children? category.children.each do |sub_category| display_tree(sub_category) puts(sub_category.name) # to check if it goes here end end category.name end end category参数是根类别之一。 该怎么回事? 在网页中:它仅显示根级别类别Sport Beauty Automobile 在控制台: Men Indoor Women Children Water sport Garage 如果得到它们,则意味着递归有效,但事实并非如此。 为什么它只返回第一次迭代? 我也希望按以下顺序获取它们: root/child/child-of-child 但如果我想返回category.name ,它应该在最后一个位置。 你能告诉我你的意见吗? PS:我刚刚发现(在添加标签期间)我在搜索过程中一直使用“递归”这个词,但它不存在,即使很多人在stackOveflow上使用它; o) – >“递归”,但是我还是被困住了 **编辑** 现在我使用这段代码: module CategoriesHelper def display_tree(category) […]

Ruby中的p方法难以搜索

我试图在Ruby中找到关于p方法的信息。 它似乎产生了关于类属性的内部信息,但是当我尝试搜索它时,我得到的每个单词都带有字母“p”。

使用*访问方法中的值

在方法定义中,当*以下列方式使用时,它是什么意思? def foo(*) … end 我理解以下用法: def foo(*args) … end 我不确定如何在前一种情况下访问方法参数。

在每种方法后检测Rspec测试失败

我正在尝试运行RSpec测试,我想在after方法中检测测试是否失败。 我现在有类似的东西: after(:each) do cc = ConnectController.new() cc.update(, , result?) end 如你所见, result? 函数是我需要替换的,检测测试是否失败,以及获取有关失败的测试的信息。

如何调用哈希值的方法?

以前,我询问了一种在给定条件下执行方法的巧妙方法 “ Ruby是一种在条件上执行函数的聪明方法 。” 然而,解决方案和响应时间很长,在实现时,拥有lambda的哈希很快就会变得难看。 所以我开始尝试。 以下代码有效: def a() puts “hello world” end some_hash = { 0 => a() } some_hash[0] 但是,如果我将它包装在一个类中它停止工作: class A @a = { 0 => a()} def a() puts “hello world” end def b() @a[0] end end d = A.new() db() 我不明白为什么它应该停止工作,任何人都可以建议如何使它工作?

如何使用splat和可选的哈希同时在ruby中定义方法?

我能够定义这样的方法: def test(id, *ary, hash_params) # Do stuff here end 但这使得hash_params参数成为hash_params参数。 这些也不起作用: def t(id, *ary, hash_params=nil) # SyntaxError: unexpected ‘=’, expecting ‘)’ def t(id, *ary, hash_params={}) # SyntaxError: unexpected ‘=’, expecting ‘)’ 有没有办法让它可选?