ruby-on-rails - Ruby on Rails 继承语法

标签 ruby-on-rails ruby activerecord

<分区>

给定这段代码:

 class CreateComments < ActiveRecord::Migration
  def change
    create_table :comments do |t|
      t.string :commenter
      t.text :body
      t.references :article, index: true

      t.timestamps
    end
  end
end

我知道 CreateComments 继承了 Migration 的方法。但是什么是 Migration to ActiveRecord?与其他语言相比,我在 ActiveRecord 类中找不到任何名为 Migration 的成员。那么 :: 是什么意思呢?在这种情况下,您将迁移称为什么?

最佳答案

这里其实Migration是一个类,ActiveRecord是模块(命名空间)。所以定义是:

module ActiveRecord
    class Migration
        ....
    end
end

Migration 类的基本定义在文件 /activerecord/lib/active_record/migration.rb

因此,为了调用类 Migration,您应该指定它在哪个模块中,因此您有 ActiveRecord::Migration

关于ruby-on-rails - Ruby on Rails 继承语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26547509/

相关文章:

ruby-on-rails - Rails 迁移和列更改

ruby-on-rails - Rails 部署到 Amazon EC2 - 设备上没有剩余空间

ruby-on-rails - 作用域关联上的 Rails 中的 counter_cache

ruby-on-rails - Redis 计数器始终关闭

javascript - 在 javascript 函数中设置 ruby​​ 实例变量

ruby-on-rails - RVM Ruby on Rails source ~/.rvm/scripts/rvm 没有那个位置

ruby-on-rails - 这是 Rails 验证线程安全的吗

ruby-on-rails - 我应该制作一个单独的应用程序来向 RoR 应用程序中的 40-50k 用户发送推送通知还是使用后台作业

ruby-on-rails - Ruby 无法加载此类文件 -- dm--adapter (LoadError)

ruby - 通过命名管道(而不是 STDIN/STDOUT)控制 IRB