簡體   English   中英

型號和控制器用法

[英]Models and Controllers usage

我試圖找出模型與控制器之間的正確關系和用法,盡管我已經讀夠了,但我仍然缺少一些東西,因為每次與動作建立聯系時,我都會不斷出錯。 例如;

Controller.rb
class Map < ActiveRecord::Base

     def self.clear
         update_attritube something or order.
     end

end

模型.rb

 class Map < ActiveRecord::Base def self.clear update_attritube something or order. end end 

因此,在模型中具有self.clear時,我想Map.clear將在Controller中完成。 我這是怎么了?

沒有什么不對您的控制器的方法-這是你的類方法clear是有缺陷的。 這段代碼:

def self.clear
  update_attribute(...)
end

將失敗,因為update_attribute (或update_attributes )不是有效的ActiveRecord類方法-只能在模型實例上調用。 您可以改用update_all(...)方法,盡管這取決於您在此方法中要完成的工作。

如果您實際上打算更新/軟刪除單個記錄,那么您不應該在類級別上工作,而應該獲取單個記錄(基於傳遞的id-您正在傳遞,對吧?)並調用某種方法在實例上進行更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM