草庐IT

property-getter

全部标签

ruby - @property 或 self.property 使用访问器设置属性?

哪个是更好的做法;通过@property或self.property使用访问器操作属性? 最佳答案 如果您只是使用直接访问器,那么请坚持使用@property(除非您来自Python并且被@sigilhehe关闭)否则:这完全取决于您。但是self.property在某些需要确保属性已初始设置的情况下很有用:defproperty@property||=[]end#don'tneedtocheckif@propertyis`nil`firstself.property另请注意,在@property上使用self.property会产

ruby-on-rails - Rails 查询 : Filter by properties in another table

我正在寻找一个清晰的Rails4示例,说明如何根据通过另一个表关联的数据过滤记录。假设我有一个用户模型和一个评论模型。一个用户has_many评论,一个Commentbelongs_to一个用户。评论在其表中也有一个score列。classUserUsers|id|name|email||-----|---------|---------------------||1|"Alice"|"alice@example.com"||2|"Bob"|"bob@example.com"||...|classComment我如何获得所有对内容“k”发表评论且分数>0的用户?请注意,我要返回的是用户

ruby-on-rails - :autosave property of has_many associations broken in Rails 2. 3.4?

在我将此作为错误发布给Rails团队之前,我想看看我是否做错了可能导致此行为的事情。具体来说,has_many关联的:autosave属性似乎没有按照文档工作。作为引用,这里是最新的API文档:http://api.rubyonrails.org/classes/Acti...ation.html查看“一对多示例”部分。我已经在测试应用程序中完全复制了代码,但它对我不起作用。具体来说,更新父对象,但不更新子对象。我的架构如下:create_table:postsdo|t|t.string:titlet.timestampsendcreate_table:commentsdo|t|t.t

Ruby attr_accessor 与 getter/setter 基准测试 : why is accessor faster?

我刚刚针对等效的getter/setter方法测试了attr_accessor:classA#wedefinetwoR/Wattributeswithaccessorsattr_accessor:acc,:bcc#wedefinetwoattributeswithgetter/setter-functionsdefdirA=(d);@dirA=d;enddefdirA;@dirA;enddefdirB=(d);@dirB=d;enddefdirB;@dirB;endendvarA=A.newstartT=0dirT=0accT=0#nowwedo100timesthesamebench

ruby - 是否可以让 class.property = x 返回 x 以外的东西?

假设我有一个Ruby类:classMyClassdefself.propertyreturn"someVal"enddefself.property=(newVal)#dosomethingtoset"property"success=truereturnsuccess#successisabooleanendend如果我尝试执行MyClass.property=x,整个语句的返回值始终是x。许多基于C/受启发的语言都习惯于返回bool“成功”值-是否可以使用Ruby中的“等于语法”为setter执行此操作?此外-如果这不可能,为什么不呢?允许“equalssetter”操作返回一个值

ruby - 覆盖 Mongoid 模型的 setter 和 getter

有没有办法在Mongoid中覆盖模型的setter或getter?像这样的东西:classProjectincludeMongoid::Documentfield:name,:type=>Stringfield:num_users,type:Integer,default:0key:namehas_and_belongs_to_many:users,class_name:"User",inverse_of::projects#Thiswillnotworkdefname=(projectname)@name=projectname.capitalizeendendname方法可以在不使

ruby-on-rails - Rails 中的默认 getter 和 setter 是什么样子的?

我知道我可以编写attr_accessor:tag_list来为Rails中的对象创建一个虚拟属性tag_list。这允许在对象的表单中有一个tag_list属性。如果我使用attr_accessor:tag_list,我可以在模型中对tag_list执行操作以从表单中提取和操作数据。我想知道的是,除了编写attr_accessor,我将如何编写一个getter和setter来完全复制attr_accessor的默认功能。例如:deftag_list#whatgoeshereend仅供引用,我已经尝试过deftag_list@tag_listend这行不通。

ruby - Java .properties 文件等效于 Ruby?

我需要将一些简单的属性存储在文件中并通过Ruby访问它们。我非常喜欢.properties文件格式,它是Java中此类事物的标准(使用java.util.Properties类)...它简单、易于使用且易于阅读。那么,是否有某个地方的Ruby类可以让我从这样的文件中加载一些键值对而不需要很多努力?我不想使用XML,所以请不要建议REXML(我的目的不保证“尖括号税”)。我考虑过推出我自己的解决方案...它可能最多只有5-10行代码,但我仍然宁愿使用现有的库(如果它本质上是从文件构建的哈希)...因为这会将它减少到1行....更新:它实际上是一个直接的Ruby应用程序,而不是Rails,

ruby - 尝试学习/理解 Ruby setter 和 getter 方法

我刚刚开始学习编程,并决定尝试使用Ruby。我确定这是一个愚蠢的问题,但讲师正在谈论setter和getter方法,我很困惑。这是示例:classHumandefnoise=(noise)@noise=noiseenddefnoise@noiseendend由此,类被实例化,我可以把它放出来:man=Human.newman.noise=("Howdie!")putsman.noise这导致Howdie!现在让我感到困惑的是,讲师说没有getter方法(两种方法中的第二种方法),就无法与实例变量@noi​​se进行交互。但是当我删除getter方法时,我仍然可以访问@noise,请参见

ruby-on-rails - 如何覆盖 ActiveRecord 模型中的 getter 方法?

我正在尝试覆盖ActiveRecord模型的getter方法。我在模型Category中有一个名为name的属性,我希望能够执行如下操作:defnamename_trans||nameend如果name_trans属性不为nil,则返回它,否则返回name属性。我该怎么做?这应该像这样正常调用:@category.name 最佳答案 RailsStyleGuide建议使用self[:attr]而不是read_attribute(:attr)。你可以这样使用它:defnamename_trans||self[:name]end