草庐IT

decorated_method

全部标签

Python 相当于 Ruby 的 define_method?

是否有Ruby的define_method的Python等效项,它允许动态生成类方法?(可以在维基百科的Rubyexamplecode中看到) 最佳答案 函数是Python中的一流对象,可以分配给类或实例的属性。做与维基百科示例相同的事情的一种方法是:colours={"black":"000","red":"f00","green":"0f0","yellow":"ff0","blue":"00f","magenta":"f0f","cyan":"0ff","white":"fff"}classMyString(str):pass

ruby - 为什么?无法转换成字符串 : I do have a to_s method!

我不明白为什么以下会引发异常:classXdefto_s"x"endends=""sTypeError:can'tconvertXintoString毕竟“to_s”应该将X转换为字符串。 最佳答案 Ruby核心不会自动调用短转换;这就是长时间转换的目的。长转换适用于已经非常类似于转换目标的事物,而不是仅具有目标类型的表示的事物。使用:to_str也就是说,如果您添加defto_str;"x";end给你的类(class)表达式将使用自动转换。 关于ruby-为什么?无法转换成字符串:I

ruby - 无方法错误 : undefined method `yesterday' for Date:Class

SO上发布的每个答案(是的,我检查过)似乎都有require'date'作为解决方案。我已经这样做了,但我的代码仍然无法运行。require'date'yesterday=RepSched::Helpers.datestring(Date.yesterday)出于某种原因,Ruby在Date.yesterday上窒息NoMethodError:undefinedmethod`yesterday'forDate:Class我做错了什么?编辑哦不!现在我的问题比我想象的要大。现在我已经意识到这个问题,我意识到DateTime的行为也有所不同! 最佳答案

ruby-on-rails - Rails 元编程 : How to add instance methods at runtime?

我正在Rails中定义我自己的AR类,它将包括为用户字段0-9动态创建的实例方法。用户字段不直接存储在数据库中,它们将一起序列化,因为它们不经常使用。以下是执行此操作的最佳方法吗?替代方案?应该从哪里调用添加方法的启动代码?classInfo 最佳答案 一个不错的方法,尤其是当您可能有超过0..9个用户字段时,将使用method_missing:classInfoUSER_FIELD_METHOD=/^user_field_(\n+)$/defmethod_missing(method,*arg)returnsuperunlessm

ruby-on-rails - rails : Undefined method `truncate' in model

我的模型中有以下方法可以裁剪记录的描述,但由于未知原因截断方法不起作用:defcropped_descriptionnb_words_max=500ifdescription.length>nb_words_maxtruncate(description,:length=>nb_words_max,:separator=>'')+"..."elsedescriptionendend有人看到我做错了什么吗?谢谢。 最佳答案 你用错了,你应该在String上调用这个方法。参见truncate的签名。使用:ifdescription.le

ruby-on-rails - ruby & :method syntax

我遇到了一个错误,我遗漏了这样一个空格@entries=[#true@entries.any?&:submitted?=>false空间如何改变行为。条目.已提交?=>false对于数组中的所有元素,第二行具有所需的行为。 最佳答案 问题是&也是一个具有优先级的一元运算符。当你这样做时:@entries.any?&:submitted?你实际上是这样做的:(@entries.any?)&(:submitted?)结果为真。由于@entries中有条目和符号:提交?真值为真。当你这样做时:@entries.any?&:submitte

ruby-on-rails - rails : Attr accessor undefined method in the setter

我在用户模型中有这行代码:attr_accessor:birthdate在同一个模型中,我有一个尝试通过这样做来设置生日的方法:self.birthdate=mydate其中mydate是一个Date对象。我收到此错误:undefinedmethodbirthdate='为什么会这样?attr_accessor不是创建了setter和getter吗? 最佳答案 让我猜猜,您是从类方法中调用setter的,对吧?classFooattr_accessor:bardefset_barvalself.bar=val#`self`isani

ruby-on-rails - 类型错误 : Object doesn't support this property or method

我创建了Rails应用程序,我在其中创建了一个数据库(空)。当我尝试查看我的产品页面时,我在http://localhost:3000/products上收到以下错误页。在迁移数据库之前,应用程序可以正常运行。我正在使用therubyracer并且在Windows7上。ExecJS::ProgramErrorinProducts#indexShowingC:/RailsInstaller/DevKit/home/JP/nameofapp/app/views/layouts/application.html.erbwhereline#16raised:TypeError:Objectdo

ruby-on-rails - Rails 3 +Devise + RSpec : undefined method 'visit'

我遇到了一个奇怪的问题。我以前从未使用过Devisegem。所以,我尝试编写简单的RSpec测试:require'spec_helper'describe"Admins"dobefore(:each)do@email="test@test.ru"user=FactoryGirl.create(:user,:email=>@email)enddescribe"signin/out"dodescribe"success"doit"shouldsignauserinandout"dovisitnew_user_session_pathendendendend我收到这样的错误:1)Admins

ruby - 访问 self.method_added 中的变量名

我相信Ruby,有一种方法可以访问block中所有局部变量的名称。defsome_method(param1,param2)plocal_variablesend每当调用“some_method”时,param1和param2将被打印出来。不是值(value)!但是变量名。现在,我想在self.method_added内实现相同的结果。只要定义了一个方法,就会调用self.method_added。我希望能够访问在self.method_added中定义的方法的局部变量的名称。例如,defself.method_added(method_name)#printsthevariables