[英]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.