Add explicit dependent: nil to associations (#28169)
				
					
				
			This commit is contained in:
		
							parent
							
								
									1564799952
								
							
						
					
					
						commit
						f70f39dd04
					
				| @ -112,20 +112,6 @@ Rails/HasAndBelongsToMany: | |||||||
|     - 'app/models/status.rb' |     - 'app/models/status.rb' | ||||||
|     - 'app/models/tag.rb' |     - 'app/models/tag.rb' | ||||||
| 
 | 
 | ||||||
| # Configuration parameters: Include. |  | ||||||
| # Include: app/models/**/*.rb |  | ||||||
| Rails/HasManyOrHasOneDependent: |  | ||||||
|   Exclude: |  | ||||||
|     - 'app/models/concerns/account/counters.rb' |  | ||||||
|     - 'app/models/conversation.rb' |  | ||||||
|     - 'app/models/custom_emoji.rb' |  | ||||||
|     - 'app/models/custom_emoji_category.rb' |  | ||||||
|     - 'app/models/domain_block.rb' |  | ||||||
|     - 'app/models/invite.rb' |  | ||||||
|     - 'app/models/status.rb' |  | ||||||
|     - 'app/models/user.rb' |  | ||||||
|     - 'app/models/web/push_subscription.rb' |  | ||||||
| 
 |  | ||||||
| # Configuration parameters: Include. | # Configuration parameters: Include. | ||||||
| # Include: app/controllers/**/*.rb, app/mailers/**/*.rb | # Include: app/controllers/**/*.rb, app/mailers/**/*.rb | ||||||
| Rails/LexicallyScopedActionFilter: | Rails/LexicallyScopedActionFilter: | ||||||
|  | |||||||
| @ -6,7 +6,7 @@ module Account::Counters | |||||||
|   ALLOWED_COUNTER_KEYS = %i(statuses_count following_count followers_count).freeze |   ALLOWED_COUNTER_KEYS = %i(statuses_count following_count followers_count).freeze | ||||||
| 
 | 
 | ||||||
|   included do |   included do | ||||||
|     has_one :account_stat, inverse_of: :account |     has_one :account_stat, inverse_of: :account, dependent: nil | ||||||
|     after_save :save_account_stat |     after_save :save_account_stat | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -13,7 +13,7 @@ | |||||||
| class Conversation < ApplicationRecord | class Conversation < ApplicationRecord | ||||||
|   validates :uri, uniqueness: true, if: :uri? |   validates :uri, uniqueness: true, if: :uri? | ||||||
| 
 | 
 | ||||||
|   has_many :statuses |   has_many :statuses, dependent: nil | ||||||
| 
 | 
 | ||||||
|   def local? |   def local? | ||||||
|     uri.nil? |     uri.nil? | ||||||
|  | |||||||
| @ -37,7 +37,7 @@ class CustomEmoji < ApplicationRecord | |||||||
| 
 | 
 | ||||||
|   belongs_to :category, class_name: 'CustomEmojiCategory', optional: true |   belongs_to :category, class_name: 'CustomEmojiCategory', optional: true | ||||||
| 
 | 
 | ||||||
|   has_one :local_counterpart, -> { where(domain: nil) }, class_name: 'CustomEmoji', primary_key: :shortcode, foreign_key: :shortcode, inverse_of: false |   has_one :local_counterpart, -> { where(domain: nil) }, class_name: 'CustomEmoji', primary_key: :shortcode, foreign_key: :shortcode, inverse_of: false, dependent: nil | ||||||
| 
 | 
 | ||||||
|   has_attached_file :image, styles: { static: { format: 'png', convert_options: '-coalesce +profile "!icc,*" +set date:modify +set date:create +set date:timestamp' } }, validate_media_type: false |   has_attached_file :image, styles: { static: { format: 'png', convert_options: '-coalesce +profile "!icc,*" +set date:modify +set date:create +set date:timestamp' } }, validate_media_type: false | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -11,7 +11,7 @@ | |||||||
| # | # | ||||||
| 
 | 
 | ||||||
| class CustomEmojiCategory < ApplicationRecord | class CustomEmojiCategory < ApplicationRecord | ||||||
|   has_many :emojis, class_name: 'CustomEmoji', foreign_key: 'category_id', inverse_of: :category |   has_many :emojis, class_name: 'CustomEmoji', foreign_key: 'category_id', inverse_of: :category, dependent: nil | ||||||
| 
 | 
 | ||||||
|   validates :name, presence: true, uniqueness: true |   validates :name, presence: true, uniqueness: true | ||||||
| end | end | ||||||
|  | |||||||
| @ -25,7 +25,7 @@ class DomainBlock < ApplicationRecord | |||||||
| 
 | 
 | ||||||
|   validates :domain, presence: true, uniqueness: true, domain: true |   validates :domain, presence: true, uniqueness: true, domain: true | ||||||
| 
 | 
 | ||||||
|   has_many :accounts, foreign_key: :domain, primary_key: :domain, inverse_of: false |   has_many :accounts, foreign_key: :domain, primary_key: :domain, inverse_of: false, dependent: nil | ||||||
|   delegate :count, to: :accounts, prefix: true |   delegate :count, to: :accounts, prefix: true | ||||||
| 
 | 
 | ||||||
|   scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) } |   scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) } | ||||||
|  | |||||||
| @ -20,7 +20,7 @@ class Invite < ApplicationRecord | |||||||
|   include Expireable |   include Expireable | ||||||
| 
 | 
 | ||||||
|   belongs_to :user, inverse_of: :invites |   belongs_to :user, inverse_of: :invites | ||||||
|   has_many :users, inverse_of: :invite |   has_many :users, inverse_of: :invite, dependent: nil | ||||||
| 
 | 
 | ||||||
|   scope :available, -> { where(expires_at: nil).or(where('expires_at >= ?', Time.now.utc)) } |   scope :available, -> { where(expires_at: nil).or(where('expires_at >= ?', Time.now.utc)) } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -66,12 +66,14 @@ class Status < ApplicationRecord | |||||||
|   has_many :bookmarks, inverse_of: :status, dependent: :destroy |   has_many :bookmarks, inverse_of: :status, dependent: :destroy | ||||||
|   has_many :reblogs, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblog, dependent: :destroy |   has_many :reblogs, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblog, dependent: :destroy | ||||||
|   has_many :reblogged_by_accounts, through: :reblogs, class_name: 'Account', source: :account |   has_many :reblogged_by_accounts, through: :reblogs, class_name: 'Account', source: :account | ||||||
|   has_many :replies, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :thread |   has_many :replies, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :thread, dependent: nil | ||||||
|   has_many :mentions, dependent: :destroy, inverse_of: :status |   has_many :mentions, dependent: :destroy, inverse_of: :status | ||||||
|   has_many :mentioned_accounts, through: :mentions, source: :account, class_name: 'Account' |   has_many :mentioned_accounts, through: :mentions, source: :account, class_name: 'Account' | ||||||
|   has_many :active_mentions, -> { active }, class_name: 'Mention', inverse_of: :status |  | ||||||
|   has_many :media_attachments, dependent: :nullify |   has_many :media_attachments, dependent: :nullify | ||||||
| 
 | 
 | ||||||
|  |   # The `dependent` option is enabled by the initial `mentions` association declaration | ||||||
|  |   has_many :active_mentions, -> { active }, class_name: 'Mention', inverse_of: :status # rubocop:disable Rails/HasManyOrHasOneDependent | ||||||
|  | 
 | ||||||
|   # Those associations are used for the private search index |   # Those associations are used for the private search index | ||||||
|   has_many :local_mentioned, -> { merge(Account.local) }, through: :active_mentions, source: :account |   has_many :local_mentioned, -> { merge(Account.local) }, through: :active_mentions, source: :account | ||||||
|   has_many :local_favorited, -> { merge(Account.local) }, through: :favourites, source: :account |   has_many :local_favorited, -> { merge(Account.local) }, through: :favourites, source: :account | ||||||
| @ -80,11 +82,13 @@ class Status < ApplicationRecord | |||||||
| 
 | 
 | ||||||
|   has_and_belongs_to_many :tags |   has_and_belongs_to_many :tags | ||||||
| 
 | 
 | ||||||
|   has_one :preview_cards_status, inverse_of: :status # Because of a composite primary key, the dependent option cannot be used |   # Because of a composite primary key, the `dependent` option cannot be used on this association | ||||||
|  |   has_one :preview_cards_status, inverse_of: :status # rubocop:disable Rails/HasManyOrHasOneDependent | ||||||
|  | 
 | ||||||
|   has_one :notification, as: :activity, dependent: :destroy |   has_one :notification, as: :activity, dependent: :destroy | ||||||
|   has_one :status_stat, inverse_of: :status |   has_one :status_stat, inverse_of: :status, dependent: nil | ||||||
|   has_one :poll, inverse_of: :status, dependent: :destroy |   has_one :poll, inverse_of: :status, dependent: :destroy | ||||||
|   has_one :trend, class_name: 'StatusTrend', inverse_of: :status |   has_one :trend, class_name: 'StatusTrend', inverse_of: :status, dependent: nil | ||||||
| 
 | 
 | ||||||
|   validates :uri, uniqueness: true, presence: true, unless: :local? |   validates :uri, uniqueness: true, presence: true, unless: :local? | ||||||
|   validates :text, presence: true, unless: -> { with_media? || reblog? } |   validates :text, presence: true, unless: -> { with_media? || reblog? } | ||||||
|  | |||||||
| @ -84,12 +84,12 @@ class User < ApplicationRecord | |||||||
|   belongs_to :role, class_name: 'UserRole', optional: true |   belongs_to :role, class_name: 'UserRole', optional: true | ||||||
|   accepts_nested_attributes_for :account |   accepts_nested_attributes_for :account | ||||||
| 
 | 
 | ||||||
|   has_many :applications, class_name: 'Doorkeeper::Application', as: :owner |   has_many :applications, class_name: 'Doorkeeper::Application', as: :owner, dependent: nil | ||||||
|   has_many :backups, inverse_of: :user |   has_many :backups, inverse_of: :user, dependent: nil | ||||||
|   has_many :invites, inverse_of: :user |   has_many :invites, inverse_of: :user, dependent: nil | ||||||
|   has_many :markers, inverse_of: :user, dependent: :destroy |   has_many :markers, inverse_of: :user, dependent: :destroy | ||||||
|   has_many :webauthn_credentials, dependent: :destroy |   has_many :webauthn_credentials, dependent: :destroy | ||||||
|   has_many :ips, class_name: 'UserIp', inverse_of: :user |   has_many :ips, class_name: 'UserIp', inverse_of: :user, dependent: nil | ||||||
| 
 | 
 | ||||||
|   has_one :invite_request, class_name: 'UserInviteRequest', inverse_of: :user, dependent: :destroy |   has_one :invite_request, class_name: 'UserInviteRequest', inverse_of: :user, dependent: :destroy | ||||||
|   accepts_nested_attributes_for :invite_request, reject_if: ->(attributes) { attributes['text'].blank? && !Setting.require_invite_text } |   accepts_nested_attributes_for :invite_request, reject_if: ->(attributes) { attributes['text'].blank? && !Setting.require_invite_text } | ||||||
|  | |||||||
| @ -19,7 +19,7 @@ class Web::PushSubscription < ApplicationRecord | |||||||
|   belongs_to :user, optional: true |   belongs_to :user, optional: true | ||||||
|   belongs_to :access_token, class_name: 'Doorkeeper::AccessToken', optional: true |   belongs_to :access_token, class_name: 'Doorkeeper::AccessToken', optional: true | ||||||
| 
 | 
 | ||||||
|   has_one :session_activation, foreign_key: 'web_push_subscription_id', inverse_of: :web_push_subscription |   has_one :session_activation, foreign_key: 'web_push_subscription_id', inverse_of: :web_push_subscription, dependent: nil | ||||||
| 
 | 
 | ||||||
|   validates :endpoint, presence: true |   validates :endpoint, presence: true | ||||||
|   validates :key_p256dh, presence: true |   validates :key_p256dh, presence: true | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user