diff options
author | yuuji.yaginuma <yuuji.yaginuma@gmail.com> | 2016-01-02 13:20:46 +0900 |
---|---|---|
committer | yuuji.yaginuma <yuuji.yaginuma@gmail.com> | 2016-01-02 14:44:50 +0900 |
commit | 571b090a85b09422b4ed2744383b90ada433a2f0 (patch) | |
tree | a543f30813fd33496b4c0e9506c8a5c2d51b60e0 | |
parent | 541caffa39cc6f5334e01a9ec2f3360c28f4a1c8 (diff) | |
download | rails-571b090a85b09422b4ed2744383b90ada433a2f0.tar.gz rails-571b090a85b09422b4ed2744383b90ada433a2f0.tar.bz2 rails-571b090a85b09422b4ed2744383b90ada433a2f0.zip |
correctly presence check of `application_record.rb` in plugin
-rw-r--r-- | activerecord/lib/rails/generators/active_record/model/model_generator.rb | 8 | ||||
-rw-r--r-- | railties/test/generators/plugin_generator_test.rb | 9 |
2 files changed, 16 insertions, 1 deletions
diff --git a/activerecord/lib/rails/generators/active_record/model/model_generator.rb b/activerecord/lib/rails/generators/active_record/model/model_generator.rb index 15aecf28ca..7395839fca 100644 --- a/activerecord/lib/rails/generators/active_record/model/model_generator.rb +++ b/activerecord/lib/rails/generators/active_record/model/model_generator.rb @@ -45,7 +45,13 @@ module ActiveRecord def determine_default_parent_class application_record = nil - in_root { application_record = File.exist?('app/models/application_record.rb') } + in_root do + application_record = if mountable_engine? + File.exist?("app/models/#{namespaced_path}/application_record.rb") + else + File.exist?('app/models/application_record.rb') + end + end if application_record "ApplicationRecord" diff --git a/railties/test/generators/plugin_generator_test.rb b/railties/test/generators/plugin_generator_test.rb index bb84df899a..c5723e364d 100644 --- a/railties/test/generators/plugin_generator_test.rb +++ b/railties/test/generators/plugin_generator_test.rb @@ -621,6 +621,15 @@ class PluginGeneratorTest < Rails::Generators::TestCase assert_no_directory "app/views" end + def test_model_with_existent_application_record_in_mountable_engine + run_generator [destination_root, '--mountable'] + capture(:stdout) do + `#{destination_root}/bin/rails g model article` + end + + assert_file "app/models/bukkits/article.rb", /class Article < ApplicationRecord/ + end + protected def action(*args, &block) silence(:stdout){ generator.send(*args, &block) } |