From: lordbyte Date: 2007-05-27T23:55:03+09:00 Subject: Return a "complete" class Hi! I have some problems with doing some kind of "my own controller" in Ruby when returning a complete class. Let's say we start with the following: I have a ... - ... model called Asset which has several attributes and methods. - ... model called Picture which inherits from Asset (class Picture < Asset) - ... model called Video which inherits from Asset So far so good. In a gallery controller, I know trough a parameter for which kind of assets a user wants to search (videos, pictures, ...). Now I had the following idea, which is not working for me and clearly has some misunderstanding of OO. :-) I created a class called Media which looks like this (pseudo-code): class Media def initialize(asset_type) case asset_type when "picture" return Picture when "video" return Video end end end In my gallery-controller, I have a before-filter similar to: params[:media] = picture @media = Media.new(params[:media]) Later, I expect to do something like: @media.find(:all) The important thing is, that I only want to see pictures! I see that it is not possible to return a complete class definition. Even returning a "Picture.new" doesn't give me my methods defined in the Picture model. I also don't expect to see @media.find(:all) working, if @media was created with a Picture.new. Does anybody has hints in which direction to look or how to solve this problem? Thanks in advance! Cheers Markus