加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在after_save中调用类方法

发布时间:2020-12-16 21:14:28 所属栏目:百科 来源:网络整理
导读:这可能是一个愚蠢的观点,但我找不到解决方案. 我有一个带有类方法update_menu的简单模型,我希望在每次保存实例后调用它. Class Category attr_accessible :name,:content def self.menu @@menu ||= update_menu end def self.update_menu @@menu = Category.
这可能是一个愚蠢的观点,但我找不到解决方案.

我有一个带有类方法update_menu的简单模型,我希望在每次保存实例后调用它.

Class Category
  attr_accessible :name,:content


  def self.menu
     @@menu ||= update_menu
  end

  def self.update_menu
     @@menu = Category.all
  end
end

那么获取after_filter调用update_menu的正确语法是什么?

我试过了:

after_save :update_menu

但它在实例(不存在)上查找方法而不在类上查找.

谢谢你的回答.

解决方法

通过删除self使其成为实例方法.
# now an instance method
def update_menu
   @@menu = Category.all
end

在类方法上进行after_save回调没有多大意义.不保存类,实例是.例如:

# I'm assuming the code you typed in has typos since
# it should inherit from ActiveRecord::Base
class Category < ActiveRecord::Base
  attr_accessible :name
end

category_one = Category.new(:name => 'category one')
category_one.save  # saving an instance

Category.save # this wont work

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读