簡體   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