I'm not sure of what you need to do but I'll assume that you just want to create an association between a person and a vehicle of type car or truck (or whatever).
I am assuming that you have STI built into your vehicles table, with a column named 'type' that stores the type of vehicle ('Car'/'Truck'/'Whatever'). If you just want to assign a vehicle to the person I don't see a reason why you should know the type of vehicle it is. Based on your code you know the id of the vehicle. Why not do something simpler?: person.car = Vehicle.find(params[:id]) You might not know the type of vehicle it is but does it matter? And going even further, do you really need to retrieve the vehicle row? I guess that if you can't trust the id beeing an honest value you should but if you could trust it, couldn't you just do?: person.vehicle_id = params[:id] Maybe I am not understanding your need? On Sep 22, 10:51 am, Heinz Strunk <rails-mailing-l...@andreas-s.net> wrote: > Hey, > > I've got a polymorphic relation and would like to create an object. How > is it possible to determine whether its a 'car' or a 'truck'? > > A person can owe cars and trucks. I could pass params like the car/truck > id to the action but that doesn't really help me. > > For now I do it like this but I don't like it at all: > person.cars = Car.find(params[:id]) if params[:type] == "Car" > person.truck = Truck.find(params[:id]) if params[:type] == "Truck" > > This is really not how I want it. Does anyone knows how to solve that > kind of problem? > > Thanks > -- > Posted viahttp://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---