Ruby on rails 模型和控制器使用
我试图找出模型和控制器之间的正确关系和用法,尽管我已经读了足够多的书,但我仍然遗漏了一些东西,因为每次我与一个动作建立连接时,我总是会出错。比如, Controller.rbRuby on rails 模型和控制器使用,ruby-on-rails,Ruby On Rails,我试图找出模型和控制器之间的正确关系和用法,尽管我已经读了足够多的书,但我仍然遗漏了一些东西,因为每次我与一个动作建立连接时,我总是会出错。比如, Controller.rb def destroy Map.clear end Model.rb 因此,在模型中使用self.clear时,我认为Map.clear将在控制器中执行此操作。我这里出了什么问题?您的控制器方法没有问题-很明显,您的类方法存在缺陷。此代码: def self.clear update_attribute(..
def destroy
Map.clear
end
Model.rb
因此,在模型中使用self.clear时,我认为Map.clear将在控制器中执行此操作。我这里出了什么问题?您的控制器方法没有问题-很明显,您的类方法存在缺陷。此代码:
def self.clear
update_attribute(...)
end
将失败,因为update\u attribute或update\u attributes不是有效的ActiveRecord类方法-它将在模型实例上调用。您可以使用更新所有。。。方法,尽管这取决于您在该方法中究竟要实现什么
如果您实际上打算更新/软删除一条记录,那么您不应该在类级别工作,而应该根据传递的id获取一条记录—您正在传递,对吗?并调用该实例上的某个方法来更新它。我认为您应该查找/阅读有关模型、类和实例方法/变量的主题,因为您的clear方法显示出非常缺乏理解;在控制器def destroy something=something.findparams[:id]something.cancel end中,在模型中有“class something
def self.clear
update_attribute(...)
end