我想在Rails应用程序中添加一些验证。我正在使用Postgresql。我创建了一个帖子表和一个用户表。每个用户可以有多个帖子,每个帖子可以有多个用户。但是,每个帖子只能有一个类别(另一个表)。我需要添加什么模型?
答案 0 :(得分:0)
您应该能够做到,只需:
# == Schema Information
#
# Table name: posts
#
# id :integer not null, primary key
# category_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
class Post < ApplicationRecord
belongs_to :category
end
...和...
# == Schema Information
#
# Table name: categories
#
# id :integer not null, primary key
# created_at :datetime not null
# updated_at :datetime not null
#
class Category < ApplicationRecord
has_many :posts
end
因为使用的是导轨6,所以belongs_to
将强制使用有效的category_id
。无需进一步验证。如果您希望category_id
是可选的,请执行以下操作:
# == Schema Information
#
# Table name: posts
#
# id :integer not null, primary key
# category_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
class Post < ApplicationRecord
belongs_to :category, optional: true
end