-1
A
回答
1
好吧,我想我明白你的问题:
在PictureFileCallbacks的after_destroy方法会自动通过导轨神奇地调用:
当rails破坏你的PictureFile对象时,它将实例化一个PictureFileCallbacks对象并尝试在其中运行一个after_destroy方法。
一切按常规工作,如果你按照命名正确的话,所有东西都可以直接使用。
在一个虚拟项目上尝试一下,如果你在制作这个工作时遇到了一些麻烦,可以返回一些代码来显示。
0
一切工作按照惯例,你可以试试下面的例子:
#generate PictrueFile model with name attribute and generate seed
rails g model PictureFile name:string
#seeds.rb
3.times do |i|
PictureFile.create(name: "name#{i}")
end
#create picture_file.rb and picture_file_callbacks.rb in model directory
#picture_file_callbacks.rb
class PictureFileCallbacks
def after_destroy(picture_file)
PictureFile.create(name: "demo")
end
end
#picture_file_callbacks.rb
class PictureFile < ApplicationRecord
after_destroy PictureFileCallbacks.new
end
execute the command in rails c
PictureFile.first.destroy
PictrueFile.pluck(:name) #=>["name1", "name2", "demo"]
相关问题
- 1. 如何在Rails中使用ActiveRecord :: Base的
- 2. Rails扩展ActiveRecord :: Base
- 3. 理解的ActiveRecord :: Base类名
- 4. 什么是ActiveRecord Rails关系?
- 5. Rails的ActiveRecord CounterCache和回调
- 6. Rails中的ActionController :: Base如何知道它的模型是什么类?
- 7. 什么是类名:: Rails中
- 8. 在rails中add_to_base是否向Activerecord :: Base添加了一条消息?
- 9. Rails的ActiveRecord的条件回调问题
- 10. Rails模型中around_create回调的用途是什么?
- 11. Rails 3中ActiveRecord :: RecordNotFound的替代语法是什么
- 12. 什么是Qlikview中的回调公式?
- 13. ReactTransitionGroup钩子中的回调是什么?
- 14. 什么是Spring JMS中的JmsTemplate回调?
- 15. 什么是Java中的回调
- 16. 什么是Java中的回调接口?
- 17. 如何在不从ActiveRecord :: Base继承的类中使用Paperclip gem for Rails?
- 18. 什么是Rails 3替代ActiveRecord :: Errors?
- 19. Rails模型不能继承ActiveRecord :: Base
- 20. ::基本部分ActiveRecord :: Base中的含义
- 21. 为什么ActiveRecord不是一个模块?
- 22. 什么是Rails中的宏?
- 23. Rails中的`sanitize`是什么?
- 24. 什么是java的回调?
- 25. 如何永久地忽略ActiveRecord :: Base类中的数据库列?
- 26. Rails的ActiveRecord的和:追加来自ActiveRecord的继承方法,模型:: Base的
- 27. Rails ActiveRecord中的Upsert
- 28. 将ActiveRecord :: Relation作为json返回到rails中的ajax调用
- 29. 将验证回调添加到Ruby on Rails中的ActiveRecord实例
- 30. 为什么ARel查询返回为ActiveRecord :: Relation类而不是父类?
他们已经该指南中描述的非常好。你有一个具体的问题或者你正在努力工作吗? – 2013-03-10 07:42:24
我不明白为什么after_destroy PictureFileCallbacks.new会调用PictureFileCallbacks类中的after_destroy类的实例方法 – Amrut 2013-03-10 07:50:46
嗯,它也解释了:“请注意,我们需要实例化一个新的PictureFileCallbacks对象,因为我们将回调声明为实例方法。如果回调函数使用实例化对象的状态,则特别有用,但通常将回调声明为类方法会更有意义:“ – vdaubry 2013-03-10 07:53:35