diff options
author | Yves Senn <yves.senn@gmail.com> | 2013-10-15 00:24:25 -0700 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2013-10-15 00:24:25 -0700 |
commit | 1810f79277760f89e201f53583780979f1caa01e (patch) | |
tree | c06bcb7fc1f6c406e5dfa9a476651a21851410f2 /railties/lib/rails | |
parent | 44ef5a83c83ad0a99638d87ee3d26f3e8a0e7ddb (diff) | |
parent | 4f642dcb39cea155ddb50978a38fb3a2f2290ea3 (diff) | |
download | rails-1810f79277760f89e201f53583780979f1caa01e.tar.gz rails-1810f79277760f89e201f53583780979f1caa01e.tar.bz2 rails-1810f79277760f89e201f53583780979f1caa01e.zip |
Merge pull request #11432 from yalab/generate_model_name_option
Add --model-name option into scaffold_controller generator
Diffstat (limited to 'railties/lib/rails')
-rw-r--r-- | railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb | 2 | ||||
-rw-r--r-- | railties/lib/rails/generators/resource_helpers.rb | 25 |
2 files changed, 21 insertions, 6 deletions
diff --git a/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb b/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb index 4f36b612ae..6bf0a33a5f 100644 --- a/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +++ b/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb @@ -13,7 +13,7 @@ module Rails argument :attributes, type: :array, default: [], banner: "field:type field:type" def create_controller_files - template "controller.rb", File.join('app/controllers', class_path, "#{controller_file_name}_controller.rb") + template "controller.rb", File.join('app/controllers', controller_class_path, "#{controller_file_name}_controller.rb") end hook_for :template_engine, :test_framework, as: :scaffold diff --git a/railties/lib/rails/generators/resource_helpers.rb b/railties/lib/rails/generators/resource_helpers.rb index 7fd5c00768..a01eb57651 100644 --- a/railties/lib/rails/generators/resource_helpers.rb +++ b/railties/lib/rails/generators/resource_helpers.rb @@ -9,11 +9,19 @@ module Rails def self.included(base) #:nodoc: base.class_option :force_plural, type: :boolean, desc: "Forces the use of a plural ModelName" + base.class_option :model_name, type: :string, desc: "ModelName to be used" end # Set controller variables on initialization. def initialize(*args) #:nodoc: super + if options[:model_name] + controller_name = name + self.name = options[:model_name] + assign_names!(self.name) + else + controller_name = name + end if name == name.pluralize && name.singularize != name.pluralize && !options[:force_plural] unless ResourceHelpers.skip_warn @@ -24,19 +32,26 @@ module Rails assign_names!(name) end - @controller_name = name.pluralize + assign_controller_names!(controller_name.pluralize) end protected - attr_reader :controller_name + attr_reader :controller_name, :controller_file_name def controller_class_path - class_path + if options[:model_name] + @controller_class_path + else + class_path + end end - def controller_file_name - @controller_file_name ||= file_name.pluralize + def assign_controller_names!(name) + @controller_name = name + @controller_class_path = name.include?('/') ? name.split('/') : name.split('::') + @controller_class_path.map! { |m| m.underscore } + @controller_file_name = @controller_class_path.pop end def controller_file_path |