调用“ ActiveRecord :: Base.create”时,如何调用“创建”?

梅西

在Rails中,我创建了新表。

class Post < ActiveRecord::Base
end

然后,我创建新记录。调用时Post.createcreate是中定义的方法persistance.rb

Post.method(:create).source_location
=> #["D:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/persistence.rb", 29]

在同一目录中Base定义base.rb

假设在中看到文件,模块Persistance和类Base处于同一级别ActiveRecord

那么怎么Post打电话create呢?

最大限度

您需要在经典的层次继承和并行继承之间进行区分。

在Ruby中,类只能从单个类继承,但它们可以包含许多模块。这就是在其他语言中通常被称为mixin或traits的东西。

module A
  def hello(name = "World")
    "Hello #{name}"
  end
end

module B
  def goodbye(name = "World"))
    "Goodbye #{name}"
  end
end

class Base
  include A
  include B
end

class Foo < Base
end

foo = Foo.new
puts foo.hello # => Hello World
puts foo.goodbye # => Goodbye World

在这种情况下,ActiveRecord::Base包括许多ActiveRecord::Persistence提供其功能的模块

您还混淆了名称空间和继承的概念。Ruby没有实际的名称空间(带有自己的关键字),但是您可以通过将大多数对象放置在模块中来封装它们:

module Foo
  class Bar
  end

  module Baz
    class Bar
    end
  end
end

这不会影响继承。例如,在这种情况下,Foo::Bar之间没有实际连接Foo::Baz::Bar在定义类或模块的文件与继承树的工作方式之间也没有直接关联。Ruby会很乐意让您将所有内容推送到一个文件中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ActiveRecord 如何调用“where”?

来自分类Dev

如何在RSpec中模拟对新ActiveRecord对象的创建调用?

来自分类Dev

ActiveRecord :: Relation对象如何调用类方法

来自分类Dev

ActiveRecord :: Relation对象如何调用类方法

来自分类Dev

如何成功继承ActiveRecord :: Base?

来自分类Dev

Rails,ActiveRecord_Associations_CollectionProxy调用ActiveRecord方法的方式

来自分类Dev

ActiveRecord:仅对方法调用执行验证?

来自分类Dev

ActiveRecord 调用 PG 存储过程失败

来自分类Dev

如何传递ActiveRecord :: Base类的哈希值

来自分类Dev

如何在ActiveRecord对象上调用范围数组?

来自分类Dev

通过属性“绑定”记录:如何构造ActiveRecord调用?

来自分类Dev

如何使用 ActiveRecord 从分离的脚本中调用 rails 回调?

来自分类Dev

如何从视图调用下一个 ActiveRecord 项

来自分类Dev

从“ base.base”类中调用方法?

来自分类Dev

Rails / ActiveRecord控制器样板(调用.all)

来自分类Dev

Rails 3:无法使用#send方法(NoMethodError)调用ActiveRecord查询

来自分类Dev

ActiveRecord对象的实例变量不会随方法调用而改变

来自分类Dev

在视图Rails中调用ActiveRecord方法可以吗?

来自分类Dev

不建议使用“ ActiveRecord :: Core :: ClassMethods.find”调用

来自分类Dev

在调用期间更改ActiveRecord Relation对象中的属性

来自分类Dev

调用未定义的方法ActiveRecord \ Config :: initialise()编写器

来自分类Dev

在ActiveRecord对象上调用其他方法

来自分类Dev

了解JavaScript中的嵌入式ActiveRecord调用,Ruby on Rails

来自分类Dev

Rails 4:ActiveRecord删除调用上的删除关联列

来自分类Dev

Yii2使用ActiveRecord调用显示表状态

来自分类Dev

扩展ActiveRecord :: Base

来自分类Dev

扩展ActiveRecord :: Base

来自分类Dev

覆盖ActiveRecord :: Base

来自分类Dev

在刷新/重新启动时,Rails 4.2 ActiveRecord :: SchemaMigration被调用了4次

Related 相关文章

  1. 1

    ActiveRecord 如何调用“where”?

  2. 2

    如何在RSpec中模拟对新ActiveRecord对象的创建调用?

  3. 3

    ActiveRecord :: Relation对象如何调用类方法

  4. 4

    ActiveRecord :: Relation对象如何调用类方法

  5. 5

    如何成功继承ActiveRecord :: Base?

  6. 6

    Rails,ActiveRecord_Associations_CollectionProxy调用ActiveRecord方法的方式

  7. 7

    ActiveRecord:仅对方法调用执行验证?

  8. 8

    ActiveRecord 调用 PG 存储过程失败

  9. 9

    如何传递ActiveRecord :: Base类的哈希值

  10. 10

    如何在ActiveRecord对象上调用范围数组?

  11. 11

    通过属性“绑定”记录:如何构造ActiveRecord调用?

  12. 12

    如何使用 ActiveRecord 从分离的脚本中调用 rails 回调?

  13. 13

    如何从视图调用下一个 ActiveRecord 项

  14. 14

    从“ base.base”类中调用方法?

  15. 15

    Rails / ActiveRecord控制器样板(调用.all)

  16. 16

    Rails 3:无法使用#send方法(NoMethodError)调用ActiveRecord查询

  17. 17

    ActiveRecord对象的实例变量不会随方法调用而改变

  18. 18

    在视图Rails中调用ActiveRecord方法可以吗?

  19. 19

    不建议使用“ ActiveRecord :: Core :: ClassMethods.find”调用

  20. 20

    在调用期间更改ActiveRecord Relation对象中的属性

  21. 21

    调用未定义的方法ActiveRecord \ Config :: initialise()编写器

  22. 22

    在ActiveRecord对象上调用其他方法

  23. 23

    了解JavaScript中的嵌入式ActiveRecord调用,Ruby on Rails

  24. 24

    Rails 4:ActiveRecord删除调用上的删除关联列

  25. 25

    Yii2使用ActiveRecord调用显示表状态

  26. 26

    扩展ActiveRecord :: Base

  27. 27

    扩展ActiveRecord :: Base

  28. 28

    覆盖ActiveRecord :: Base

  29. 29

    在刷新/重新启动时,Rails 4.2 ActiveRecord :: SchemaMigration被调用了4次

热门标签

归档