草庐IT

ruby - 冰糕要求 `sig` `attr_reader`

Sorbet显示attr_reader错误,但如果我错了请纠正我,当函数被声明而不是被调用时需要sigs,对吧?我已经尝试过阅读文档,但我得到的只是这个注释注意:许多看起来像局部变量的Ruby构造实际上是没有括号的方法调用!具体来说,注意attr_reader和零参数方法定义。app/util/hodor.rb:125:Thisfunctiondoesnothavea`sig`https://sorbet.org/docs/error-reference#7017125|attr_reader(:collection_name)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

python - Python 中的 attr_reader

attr_reader在python中是否有一个“同义词”,就像不需要让我输入的东西一样?:classFoo():def__init__(self,foo,bar,spam,spammity,spam,spam,quux,foobar,barfoo):self.foo=fooself.bar=barself.spam=spam#Andsoon...只需一行代码就可以生成self.foo=foo,etc.,有点像ruby​​的attr_reader会生成@foo=foo 最佳答案 要设置所有内容,请尝试:classFoo():def_

ruby - `attr_accessor`/`attr_reader` 创建实例变量是什么意思?

attr_accessor的文档明确地说它创建了一个实例变量:[...]creatinganinstancevariable(@name)andacorrespondingaccessmethod[...]attr_reader的文档也是如此:Createsinstancevariablesandcorrespondingmethods[...]我理解第二部分,即attr_accessor和attr_reader创建方法,但我不明白第一部分。他们“创建实例变量”是什么意思? 最佳答案 这是文档中的错误/误导性措辞。attr_read

ruby-on-rails - 如何一次为所有类变量制作 'attr_reader' 或 'attr_writer'?

我正在使用RubyonRails3,因为我声明了一个包含很多变量的类,所以我会为这些类变量一次性声明所有“attr_reader”或“attr_writer”.我试过了classPersoneattr_reader:alldefinitialize(name,surname,...)@name=name@surname=surname...#Alotofvariables!endend但这不起作用。 最佳答案 classPersoneINSTANCE_VARS=[:name,:surname]attr_reader*INSTANCE

ruby-on-rails - rails : attr_accessor doesn't show up when try to render as JSON

在我的应用程序中,我有一个模型如下;classInit在这里,当我稍后添加了**attr_accessor**并尝试应用**renderjson:init**时,它不显示**clientAvailability**属性,即使我已经设置它作为;init=Init.newinit.clientAvailability="3"当我调试它时,我可以看到它已设置,但当我尝试将它呈现为json时,它并没有简单地显示出来。我可能遗漏了什么? 最佳答案 clientAvailability是数据库中的一列吗?如果没有,那么我认为这是默认方式-仅序列

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

sql - 在 attr_encrypted 列上的 rails 中查询

我有一个ruby​​onrails应用程序,我正在使用attr_encryptedgem来加密一些用户信息。它有盐和IV,所以它是双向加密的。gem拦截动态find_by以协助查询,但对于我的情况来说这不是一个足够的查询,因为我关心结果的数量。有没有办法查询表以返回与给定secret匹配的所有结果?这是例子。我有一个users表,它有一个加密的secret属性。因此,该表具有encrypted_secret、encrypted_secret_iv和encrypted_secret_salt。如果一个用户给出了“abd123”的secret,我如何查询表以查看有多少其他人也使用“abc1

ruby - attr_accessor 是否需要在 Ruby 中使用符号作为变量?

我见过的每个attr_accessor示例都使用一个符号(:var)作为变量。这是使用attr_accessor的要求吗?如果是,为什么?如果不是,为什么这种做法如此普遍? 最佳答案 Module#attr_accessorattr_accessor(symbol,...)→nilattr_accessor(string,...)→nil(newlyintroducedinRuby2.1)Definesanamedattributeforthismodule,wherethenameissymbol.id2name,creating

ruby - 无法批量分配 protected 属性 attr_accessor 和 attr_accessible

在rails2.3.11中,我有以下模型attr_accessor:person_id在Controller中@project.person_id=current_user.id现在,我在rails3.2.11中转换它,我得到了Can'tmass-assignprotectedattributes:person_id所以我改变了模型,我从attr_accessor中删除了:person_id并添加了下面一行attr_accessible:person_id但我在Controller中使用了person_id,就在这里@project.person_id=current_user.id我

ruby - 自定义 attr_reader 以进行属性的惰性实例化

(大编辑,我在那里的一部分......)我一直在努力,我想出了这种方法来指定在读取属性之前需要完成的事情:classClassdefattr_reader(*params)ifblock_given?params.eachdo|sym|define_method(sym)doyieldself.instance_variable_get("@#{sym}")endendelseparams.eachdo|sym|attrsymendendendendclassTestattr_reader:normalattr_reader(:jp,:nope){changethingsif@nope