我跟随" Rails入门"我正在创建一个博客,其中包含文章和每篇文章的评论。
生成评论模型时,我们使用以下行:
$ bin/rails generate model Comment commenter:string body:text article:references
部分article:references
与向belongs_to :article
添加comment.rb
的内容相同吗?这是否为注释模型的表添加了一列?
答案 0 :(得分:0)
没有。迁移生成器的输入会影响生成的迁移代码,进而影响迁移运行时对数据库模式所做的更改。
模型中的声明会影响可以使用哪些方法来访问模型中的article
相关字段。这两者应该是同步的,但它们是彼此独立的。
有关详细信息,请参阅http://guides.rubyonrails.org/association_basics.html#the-belongs-to-association和http://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