繁体   English   中英

Rails模型中不必要的自定义方法

[英]Custom methods unacessible in Rails Model

当我尝试:

class Construction < ActiveRecord::Base
  def columns
    ["a", "b"]
  end   
  store :dados, accessors: columns
end

我得到:

undefined local variable or method `columns' for #<Class:0x007f891037dac0>

那么,我该怎么做呢?

PS:我已经尝试过“自我”。 在专栏之前,它没有用。

编辑—有关该问题的更多信息:

我已经设置了一系列存储在“ dados”列上的序列化哈希数据。 方法存储将执行此操作并设置属性acessors。 我已经删除了该代码中并非真正属于该问题的其他部分,但基本上,我需要通过一种方法来通知accesors属性,而不是直接在其中声明。 原因是因为我将重用生成列的方法。

我不会在实例变量中使用该方法,而是在模型本身内部使用。 它用于代码重用

在模型上创建方法时,该模型的每个实例都有其方法,例如,如果执行以下操作:

在控制器中:

@construction=Construction.first

@construction.columns // will return that array;

能给我更多有关您需要做的事情的信息,以便我可以更好地帮助您

mmm im仍然无法理解问题,但也许您应该执行after after方法,如下所示:

class Construction < ActiveRecord::Base
  after_create :something

  def columns
    ["a", "b"]
  end   

  private
  def something
      store :dados, accessors: self.columns
  end
end

好。 我解决了添加自我。 之前,将列更改为其他关键字会导致其使用rails方法,并且只有在重新启动服务器后才能正常工作。 感谢大家!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM