向模型添加验证

时间:2019-12-03 18:39:24

标签: ruby-on-rails postgresql

我想在Rails应用程序中添加一些验证。我正在使用Postgresql。我创建了一个帖子表和一个用户表。每个用户可以有多个帖子,每个帖子可以有多个用户。但是,每个帖子只能有一个类别(另一个表)。我需要添加什么模型?

1 个答案:

答案 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