Rails - call to engine_name seems to be ignored -


i want make engine isolated 2 namespaces. is, let example i'd make engine classes live in:

car::bmw 

and thus, models example should placed in:

app/models/car/bmw/ 

and tables should prefixed example:

car_bmw_ 

i tried accomplish having code in lib/car/bmw/engine.rb

module car   module bmw     class engine < ::rails::engine       isolate_namespace car::bmw # call: engine_name 'car_bmw'     end   end end 

with code whenever generate model however, model placed in:

app/models/car 

and table prefixed by:

car_ 

what doing wrong? version of rails using 4.0.0.beta1


edit

i found method in rails::generators::namedbase

def namespaced_path   @namespaced_path ||= namespace.name.split("::").map {|m| m.underscore }[0] end 

which, can see, takes first part of namespace. know why is?

is bug in rails or not supposed have classes doubly namespaced?


this quick hack resorted to, fix generators.

require 'rails/generators'  rails::generators::namedbase.class_eval   protected     def namespaced_class_path       @namespaced_class_path ||= [namespaced_path.split('/')] + @class_path     end      def namespaced_path       @namespaced_path ||= namespace.name.split("::").map {|m| m.underscore }.join('/')     end      def class_name       ([file_name]).map!{ |m| m.camelize }.join('::')     end end 

using class

module car   module bmw     class engine < ::rails::engine       isolate_namespace car::bmw # call: engine_name 'car_bmw'       paths["app/models"] << "app/models/car/bmw"     end   end end 

would allow load models subdirectory specified. cannot if going influence generating process, though.

there's whole lot more configuration options, see e.g. here. edit them match needs.


Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -