EngineBlogPost == @blog.engine_blog_post Engine::BlogPost == ???
Thanks!
EngineBlogPost == @blog.engine_blog_post Engine::BlogPost == ???
Thanks!
EngineBlogPost == @blog.engine_blog_post Engine::BlogPost == ???
You might want to elaborate - to me at least your question makes no sense.
Fred.
Okay, I'm chaining methods. I want access to my class. I can access SomeClass with a method like some_class. Now with engines in Rails 3.1, I can use modules to break apart my codebase. So now, SomeClass would be Engine::SomeClass. If I try to access Engine::SomeClass with a similar style method like engine_some_class, it returns with EngineSomeClass rather than Engine::SomeClass.
Any ideas on a chainable method for accessing this class now that it has the additional module namespace?
Thanks,
Steve
Okay, I’m chaining methods. I want access to my class.
Access your class as in: obj.class (or something else)?
I can access
SomeClass with a method like some_class.
Do you mean you can take a string “some_class” and call:
“some_class”.camelize.constantize => SomeClass
Or, are you talking about some weird #method_missing-based feature of rails that I don’t know about?
Now with engines in Rails
3.1, I can use modules to break apart my codebase.
Well, in general terms, with ruby you’ve always been able to “break apart” your codebase using modules…
So now, SomeClass
would be Engine::SomeClass. If I try to access Engine::SomeClass with
a similar style method like engine_some_class, it returns with
EngineSomeClass rather than Engine::SomeClass.
So, I think the real question is, what do you mean by “it” in “it returns with…”? What method are you calling?
If I had to guess, it looks to me like you’re not talking so much about calling a method #engine_some_class so much as passing this as a value (string or symbol) to some method. Am I on the right track?
Any ideas on a chainable method for accessing this class now that it
has the additional module namespace?
What do you mean by chainable here? Do you mean method chaining like:
obj.method_a.method_b.method_c(arg1, arg2).method_d
Okay, I'm chaining methods. I want access to my class. I can access SomeClass with a method like some_class. Now with engines in Rails 3.1, I can use modules to break apart my codebase. So now, SomeClass would beEngine::SomeClass. If I try to accessEngine::SomeClass with a similar style method like engine_some_class, it returns with EngineSomeClass rather thanEngine::SomeClass.
I think you are expecting magic where there is none. If your blog model has belogns_to :blog_post, ... then you'll always do Blog.first.blog_post, whether blog_post is a BlogPost, Engine::BlogPost or some other class altogether
Fred
If I call Engine::BlogPost everything is gravy,
If I call BlogPost then I get...
uninitialized constant BlogPost