我有一个我正在测试的基本应用程序。我有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吗?
答案 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