rails中的模型关联是否在该模型的表中创建了一个列?

时间:2014-07-16 04:08:39

标签: ruby-on-rails

我跟随" Rails入门"我正在创建一个博客,其中包含文章和每篇文章的评论。

生成评论模型时,我们使用以下行:

$ bin/rails generate model Comment commenter:string body:text article:references

部分article:references与向belongs_to :article添加comment.rb的内容相同吗?这是否为注释模型的表添加了一列?

2 个答案:

答案 0 :(得分:0)

没有。迁移生成器的输入会影响生成的迁移代码,进而影响迁移运行时对数据库模式所做的更改。

模型中的声明会影响可以使用哪些方法来访问模型中的article相关字段。这两者应该是同步的,但它们是彼此独立的。

有关详细信息,请参阅http://guides.rubyonrails.org/association_basics.html#the-belongs-to-associationhttp://guides.rubyonrails.org/association_basics.html#belongs-to-association-reference

答案 1 :(得分:0)

当您生成具有引用的内容时,它将在您的新模型中创建名为MODEL_NAME_id的列:

rails g model Comment commenter:string body:text article:references

创建此迁移:

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

表评论是这样的(我的bd是mysql):

====== comments =======

commenter   VARCHAR(255)
body        TEXT
article_id  INT(11)

PS:您正在使用旧的rails版本来学习。拿最新版本来学习,不要浪费你的时间:P