草庐IT

pythonic将变量转换为列表的方法

全部标签

ruby-on-rails - 如何在 Rails 模型中为类方法起别名?

我想在我的一个Rails模型上为类方法设置别名。defself.sub_agentid=SubAgentStatus.where(name:"active").first.idwhere(type:"SubAgent",sub_agent_status_id:id).order(:first_name)end如果这是一个实例方法,我会简单地使用alias_method,但这不适用于类方法。如何在不复制方法的情况下执行此操作? 最佳答案 您可以使用:classFoodefinstance_methodendalias_method:a

Ruby:使用条件的返回进行变量赋值和比较

我有一个方法,为了检查它是否正在传递一个block,我执行以下操作:ifblock_given?res=yield(array[i],array[i+1])elseres=array[i]-array[i+1]end然而,RuboCop在ifblock_given?行中给了我一个我不太理解的警告:Usethereturnoftheconditionalforvariableassignmentandcomparison还有其他更符合ruby​​ist的方法吗?谢谢 最佳答案 警告告诉您要做的是:res=ifblock_given?y

ruby - 如何获取方法的方法对象?

我正在尝试按照以下方式扩展Method类:irb(main):008:0>classAirb(main):009:1>defairb(main):010:2>puts"blah"irb(main):011:2>endirb(main):012:1>end=>nilirb(main):013:0>classMethodirb(main):014:1>defaairb(main):015:2>p"hi"irb(main):016:2>endirb(main):017:1>end=>nilirb(main):018:0>f=A.new=>#irb(main):019:0>A.aNoMetho

ruby-on-rails - 在 Rails 中将本地时间转换为 UTC

在我的MySQL数据库中,updated_at字段存储为UTC。上周在美国东部时间晚上7点输入了一条记录,它的updated_at值为“2012-08-0123:00:00”。我正在尝试将Web客户端的本地时间转换为UTC,以便与数据库中的updated_at字段进行比较。例如,我想将“08/01/201207:00pm”转换为“2012-08-0123:00:00”(考虑到我在美国东部时间),但我不见了转换的时区方面。'7:00pm'是本地时间,可以来自任何时区。我当前的代码:ruby-1.9.2-head:015>from_date=DateTime.strptime('08/01

ruby - 如何获取 ruby​​ 中的时区列表?

我想知道,如何在Ruby2.0中获取时区列表? 最佳答案 使用Rails的一个简单方法是:ActiveSupport::TimeZone.all 关于ruby-如何获取ruby​​中的时区列表?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/23527261/

ruby - 使用 Ruby,如何将所有数组值转换为给定类型?

我需要将fixnums转换为字符串。我的解决方案是:arr.map{|a|a.to_s}有没有更好的办法? 最佳答案 arr.map(&:to_s)这使用了Ruby>=1.8.7中的一个漂亮的新特性,"symboltoproc"shortcut,相当于您问题中的代码。 关于ruby-使用Ruby,如何将所有数组值转换为给定类型?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/43

ruby - 如何将 Ruby 方法变成 block ?

有没有办法简化下面的代码?filenames是文件名(字符串)的列表,例如["foo.txt","bar.c","baz.yaml"]filenames.map{|f|File.size(f)}有什么方法可以将“File.size”变成一个过程或block吗?对于现有对象的方法,我可以执行&:method。模块级方法是否有类似的东西? 最佳答案 您可以使用Object#method(method_name):filenames.map(&File.method(:size)) 关于rub

ruby - 如何在 RSPEC 中测试类方法

我编写了一个简单的类方法Buy.get_days(string),并尝试使用不同的文本字符串输入对其进行测试。但是我觉得它非常冗长。是否有更简洁的方法来测试以下内容?有没有相当于subjectformethods我可以继续传递输入不同的参数并检查结果?有没有办法避免在每个它处进行不必要的描述?谢谢describeBuydodescribe'.get_days'doit'shouldgetdays'doBuy.get_days('Includesa1-weeknightstayforupto4people').should==1endit'shouldgetdays'doBuy.get_

ruby-on-rails - Rspec - 未定义的方法 'let'

这是我的rspec文件:require'spec_helper'describe"Birds"dobefore{visitbirds_path}it"shouldhavetherighttitle"doexpect(page).tohave_content("ApprovedBirds")endit"shouldcontainthebird'sname,genus,species"dolet(:bird){FactoryGirl.create(:bird)}expect(page).tohave_content("#{bird.name}")expect(page).tohave_co

ruby-on-rails - 从父类(super class)调用子类方法

前言:这是在Rails应用程序的上下文中。然而,这个问题是特定于Ruby的。假设我有一个Media对象。classMedia我在几个子类中扩展了它:classImage在Media类中,我想从适当的子类中调用show的实现。因此,对于Media,如果self是一个Video,那么它将调用Video的show方法。如果self是Image,它将调用Image的show方法。我有Java背景,首先想到的是“在父类(superclass)中创建一个抽象方法”。但是,我在多个地方(包括StackOverflow)读到抽象方法并不是在Ruby中处理此问题的最佳方式。考虑到这一点,我开始了rese