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