Tag: attr accessor

由attr_accessor订购模型对象

当我必须对对象列表进行排序时,我认为attr_accessor与另一个具有相同的行为,但似乎有所不同: dataRecords = MyData.where(“day = ?”, Time.now.yesterday.strftime(“%Y%m%d”).to_i) dataRecords.each do |data| data.accessor_var = func(data.x, data.y) end @sortedData = dataRecords.order(‘accessor_var DESC’) 但@sortedData没有排​​序……

Rails模型attr_accessor属性不保存?

这是我正在使用的结构: 应用程序/模型/ model.rb class Model < ActiveRecord::Base attr_accessor :some_var end 应用程序/模型/ model_controller.rb class ModelsController < ApplicationController def show @model = Model.find(params[:id]) @other_var if @model.some_var.nil? @model.some_var = "some value" @other_var = "some value" else @other_var = @model.some_var end end end 每当我运行此代码(例如show方法)时,if子句被评估为true(例如@ model.some_var == nil)。 我该如何解决这个问题? 我对attr_accessor的工作方式有什么不妥吗?

rails 4中的虚拟属性

我如何在rails 4中使用虚拟属性(getter,setter),因为’attr_accessible’被删除了。 我在这里遇到问题 def tags_list @tags = self.tags.collect(&:name).join(‘, ‘) end 在尝试更新/创建时,我可以达到上述方法,但无法达到下面的setter。 def tags_list=(tags) @tags = tags end

在同一个字段上使用attr_accessor和attr_accessible

使用以下代码在后台会发生什么? class User < ActiveRecord::Base attr_accessor :name attr_accessible :name end 提示:实例化类时,是否会持久化到数据库? 为什么或者为什么不?

ruby pickaxe书说attr_accessor是类方法

在ruby镐书中,有一条线说 attr_accessor是类Module中定义的类方法 但是attr_accessor不是实例方法吗? 我在这里错过了什么吗?

了解Ruby on Rails ActiveRecord模型访问器

我的模型,“DataFile”,有一堆字段,我想从模型外部设置,例如 file = DataFile.new file.owner = 123 现在,据我所知,我必须在我的模型中放置一个“attr_accessor:field”,用于我想从外部修改的每个字段。 但是,上面的代码运行正常,没有定义任何attr_accessors,将owner字段设置为123.为什么? 我希望得到一个“方法未定义”错误或类似的东西。

赋值符号是如何工作的 – Ruby

在Ruby中如果我只是分配一个局部变量。 sound = “bang”. 是一个main.sound=(“bang”)方法? 如果是这样,那个方法“sound =”在哪里以及如何定义? 或者这项任务如何运作? 如果没有,实际发生了什么? 我知道对于一个setter方法,你会说x.sound =(“bang”)。 并且您使用参数“bang”在对象“x”上调用方法“sound =”。 你正在创建一个实例变量“声音”。 我可以想象所有这一切。 但不是在“主”对象中分配变量时。 据我所知,它不是Object类的实例变量……或者是它? 我很困惑。

Ruby attr_accessor与getter / setter基准:为什么访问器更快?

我刚刚对等效的getter / setter-methods测试了attr_accessor: class A # we define two R/W attributes with accessors attr_accessor :acc, :bcc # we define two attributes with getter/setter-functions def dirA=(d); @dirA=d; end def dirA; @dirA; end def dirB=(d); @dirB=d; end def dirB; @dirB; end end varA = A.new startT = 0 dirT = 0 accT = 0 # now we […]

带有attr_accessor的类上的Ruby instance_eval

我理解instance_eval和class_eval之间的基本区别。 我在玩游戏时发现的是涉及attr_accessor奇怪之attr_accessor 。 这是一个例子: A = Class.new A.class_eval{ attr_accessor 😡 } a = A.new ax = “x” ax => “x” # … expected A.instance_eval{ attr_accessor :y } Ay = “y” => NoMethodError: undefined method `y=’ for A:Class ay = “y” => “y” # WHATTT? 怎么样: instance_eval没有在我们的A类(对象)的访问器上 然后它实际上把它添加到A的实例?

了解attr_accessor类方法的自我

class Test class < Test puts Test.get_some.inspect => Test nil 在上面我可以找到自己作为测试本身但不返回some_data作为输出。 但是当我按照以下方式修改时,它返回预期的输出 class Test class < Test puts Test.get_some.inspect => Test some_data 有什么区别? 编辑 现在在第一个例子中,如果我设置为获取some方法 Test.some = ‘new_data’ puts Test.some.inspect #=> new_data Test.set_some puts Test.get_some.inspect => new_data 现在它让我更加困惑。