Rails使用外键添加记录

时间:2016-08-30 17:23:52

标签: ruby-on-rails

我有一个我正在测试的基本应用程序。我有2个型号:

Post
  id: int
  name:string
  content: string
  author_id: int <-- this is just a user_id, but I want to specify that it's an author
  belongs_to: :user

User
  id: int
  name: string
  has_many: :posts

我使用控制器和视图生成了一个基本的脚手架。问题是,当我尝试创建一个新帖子并将数据提交给控制器时,我收到一个错误:

  

用户必须存在

当我创建帖子时,我只是将一个基本的int id传递给author_id字段(我知道我有ids 1-4),这是命名的问题吗?帖子是否有名为'user_id'而不是'author_id'的FK?

如果我需要多个用户ID用于不同的字段?

例如,如果可以审核帖子,那么每个帖子都会有很多评论者,每个评论者都可以查看很多帖子。会发生什么?那也不是user_id吗?

1 个答案:

答案 0 :(得分:1)

在Post模型中,您需要指定自定义外键,如下所示:

class Post < ActiveRecord::Base
  belongs_to :user, foreign_key: :author_id
end

如果你需要一个帖子来拥有很多评论者,你可能需要一个连接表 - 你可以在Rails文档中阅读更多关于这个主题的内容:http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association