Skip to content

Commit eb6b993

Browse files
authored
MultiUsers: adjust unique indexes and validations (#932)
1 parent 0c79734 commit eb6b993

5 files changed

Lines changed: 18 additions & 3 deletions

File tree

.rubocop.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ Bundler/GemVersion: { Enabled: false }
5454
Layout/SingleLineBlockChain: { Enabled: false }
5555
Lint/ConstantResolution: { Enabled: false }
5656
Rails/BulkChangeTable: { Enabled: false }
57+
Rails/RedundantPresenceValidationOnBelongsTo: { Enabled: false }
5758
RSpec/AlignLeftLetBrace: { Enabled: false }
5859
RSpec/AlignRightLetBrace: { Enabled: false }
5960
RSpec/StubbedMock: { Enabled: false }

app/models/feed.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ class Feed < ApplicationRecord
77
belongs_to :group
88
belongs_to :user
99

10-
validates_uniqueness_of :url
10+
validates :url, presence: true, uniqueness: { scope: :user_id }
11+
validates :user_id, presence: true
1112

1213
enum status: { green: 0, yellow: 1, red: 2 }
1314

app/models/group.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ class Group < ApplicationRecord
66
belongs_to :user
77
has_many :feeds
88

9+
validates :name, presence: true, uniqueness: { scope: :user_id }
10+
validates :user_id, presence: true
11+
912
def as_fever_json
1013
{ id:, title: name }
1114
end
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# frozen_string_literal: true
2+
3+
class UpdateUniqueIndexes < ActiveRecord::Migration[7.0]
4+
def change
5+
remove_index :feeds, :url
6+
add_index :feeds, [:url, :user_id], unique: true
7+
add_index :groups, [:name, :user_id], unique: true
8+
end
9+
end

db/schema.rb

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)