mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
include names in model generator warning message. refs #13515.
This is a follow up to #13515. It includes the name given and the singularized version in the warning message. This will aide the user to see wether the detected singular was right or not.
This commit is contained in:
parent
0e144bebc6
commit
174c9f0df3
2 changed files with 7 additions and 5 deletions
|
@ -3,21 +3,23 @@ require 'rails/generators/active_model'
|
|||
module Rails
|
||||
module Generators
|
||||
module ModelHelpers # :nodoc:
|
||||
PLURAL_MODEL_NAME_WARN_MESSAGE = 'Plural version of the model detected, using singularized version. Override with --force-plural or setup custom inflection rules for this noun before running the generator.'
|
||||
PLURAL_MODEL_NAME_WARN_MESSAGE = "The model name '%s' was recognized as a plural, using the singular '%s'. " \
|
||||
"Override with --force-plural or setup custom inflection rules for this noun before running the generator."
|
||||
mattr_accessor :skip_warn
|
||||
|
||||
def self.included(base) #:nodoc:
|
||||
base.class_option :force_plural, type: :boolean, default: false, desc: 'Forces the use of a plural model name'
|
||||
base.class_option :force_plural, type: :boolean, default: false, desc: 'Forces the use of the given model name'
|
||||
end
|
||||
|
||||
def initialize(args, *_options)
|
||||
super
|
||||
if name == name.pluralize && name.singularize != name.pluralize && !options[:force_plural]
|
||||
singular = name.singularize
|
||||
unless ModelHelpers.skip_warn
|
||||
say PLURAL_MODEL_NAME_WARN_MESSAGE
|
||||
say PLURAL_MODEL_NAME_WARN_MESSAGE % [name, singular]
|
||||
ModelHelpers.skip_warn = true
|
||||
end
|
||||
name.replace name.singularize
|
||||
name.replace singular
|
||||
assign_names!(name)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -38,7 +38,7 @@ class ModelGeneratorTest < Rails::Generators::TestCase
|
|||
content = run_generator ["accounts".freeze]
|
||||
assert_file "app/models/account.rb", /class Account < ActiveRecord::Base/
|
||||
assert_file "test/models/account_test.rb", /class AccountTest/
|
||||
assert_match(/Plural version of the model detected, using singularized version. Override with --force-plural or setup custom inflection rules for this noun before running the generator./, content)
|
||||
assert_match(/The model name 'accounts' was recognized as a plural, using the singular 'account'\. Override with --force-plural or setup custom inflection rules for this noun before running the generator\./, content)
|
||||
end
|
||||
|
||||
def test_model_with_underscored_parent_option
|
||||
|
|
Loading…
Reference in a new issue