Case study

hi,

i’ trying to re-create my project from php to rails. But now Im faced
with
a pb to witch I had solution with php, but I cant figure how to make it
work with rails

here my tables

ads
id
category_id
title
text

ad_real_estate_details
id
ad_id
nb_room
floor

ad_car_details
id
ad_id
color
brand

here what I succeed to do

class Ad < ActiveRecord::Base
attr_accessible :category_id :title, :text, :ad_real_estate_details
has_one :ad_real_estate_details
accepts_nested_attributes_for :ad_real_estate_details, allow_destroy:
true
end

class AdRealEstateDetail < ActiveRecord::Base
belongs_to :ad
validates :ad_id, presence: true
end

but this only work for other category than real_estate

so I was thinking of polymorphism, but polymorphism mean I should add a
reference in my “ad” table to the detail tables, and remove annonce_id
from
detail tables , what I thing is non-sense as some ads can have no
details,
but details are non-sense without an ad.

I was also thinking of a class AdDetails, and AdRealEstateDetail would
inherite from it, but this is not possible with rails as all subclasses
will share the same table

does anyone have a solution for this kind of problem ?

thanks

On Mon, Jan 28, 2013 at 6:27 AM, oto iashvili
[email protected]wrote:

category_id
id
accepts_nested_attributes_for :ad_real_estate_details, allow_destroy:
so I was thinking of polymorphism, but polymorphism mean I should add a
reference in my “ad” table to the detail tables, and remove annonce_id from
detail tables , what I thing is non-sense as some ads can have no details,
but details are non-sense without an ad.

i think you have it right when you mentioned using polymorphic
associations. it is fine to leave the polymorphic association
nil if the ad has no details if that’s what you’re worried about.

You received this message because you are subscribed to the Google G.
“Ruby on Rails: Talk” group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
To view this discussion on the web visit
https://groups.google.com/d/msg/rubyonrails-talk/-/GLpFbbHm0ogJ.
For more options, visit https://groups.google.com/groups/opt_out.

On Sun, Jan 27, 2013 at 11:27 PM, oto iashvili
[email protected]wrote:

category_id
id
ad_id
color
brand

here what I succeed to do

class Ad < ActiveRecord::Base
attr_accessible :category_id :title, :text, :ad_real_estate_details

This should be :add_real_estate_details_attributes

but this only work for other category than real_estate
does anyone have a solution for this kind of problem ?
https://groups.google.com/d/msg/rubyonrails-talk/-/GLpFbbHm0ogJ.
For more options, visit https://groups.google.com/groups/opt_out.


Nicolas D.

Hi,

thanks for answer. My pb with polymorphic is that I would have to create
first in db a ligne for ad_real_estate_details and then create my ad,
what
is non sense for me, in terms of logic.
and it might brings some pb as I read
there

lets have another example which is almost the same

image we have Student (age, classe, …) and Teacher (subject_taught)
classes that inherit from User classes. I would be non sense to create
first a Teacher entity, and then to link it to User, no ?

Le lundi 28 janvier 2013 01:10:30 UTC+1, jim a crit :

On Tue, Jan 29, 2013 at 7:41 PM, oto iashvili
[email protected]wrote:

image we have Student (age, classe, …) and Teacher (subject_taught)
classes that inherit from User classes. I would be non sense to create
first a Teacher entity, and then to link it to User, no ?

Why are you thinking of creating the details first? Why not create the
ad
first, then add the details later? Sometimes,
accepts_nested_attributes_for
is not always the answer for creating association records. Try to look
into virtual attributes
and callbacks.

text
color
end
detail tables , what I thing is non-sense as some ads can have no details,
inherite from it, but this is not possible with rails as all subclasses
To unsubscribe from this group, send email to rubyonrails-ta…@**

email to [email protected].

To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msg/rubyonrails-talk/-/zT4pri8N4GUJ.

For more options, visit https://groups.google.com/groups/opt_out.

I want to do
@ad = Ad.attributes(params[:ad])
maybe Im wrong, but as I understood about polymorphic in rails, this
would
thow an error say that ad_real_estate_details does not exist

as they explained here

Le mardi 29 janvier 2013 13:39:18 UTC+1, jim a crit :

On Wed, Jan 30, 2013 at 6:48 PM, oto iashvili
[email protected]wrote:

I want to do
@ad = Ad.attributes(params[:ad])
maybe Im wrong, but as I understood about polymorphic in rails, this would
thow an error say that ad_real_estate_details does not exist

as they explained here http://stackoverflow.**
com/questions/3969025/accepts-nested-attributes-for-with-

belongs-to-polymorphichttp://stackoverflow.com/questions/3969025/accepts-nested-attributes-for-with-belongs-to-polymorphic

As I’ve said, don’t use accepts_nested_attributes_for. Create a getter
and
setter method for each kind of details that you want.
If you don’t want to do that, create an attr_accessor for the details,
and
create the detail record in a callback.

classes that inherit from User classes. I would be non sense to create

i’ trying to re-create my project from php to rails. But now Im faced

brand

details, but details are non-sense without an ad.
subclasses will share the same table
googlegroups**.com.

email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msg/rubyonrails-talk/-/DT2QhvrfLpUJ.

For more options, visit https://groups.google.com/groups/opt_out.

On Thu, Jan 31, 2013 at 7:08 AM, oto iashvili
[email protected]wrote:

hi

thanks for answer sorry I quite new in RoR. If I do how u said, will I
have to validate “manually” all the attributes for details ?

Now that you’ve asked that, I’m not sure. You can try to use
validates_associated and use a before_validation callback

Hi,
image we have Student (age, classe, …) and Teacher (subject_taught)

hi,
title
ad_id
allow_destroy: true
add a reference in my “ad” table to the detail tables, and remove
I was also thinking of a class AdDetails, and AdRealEstateDetail
To post to this group, send email to rubyonra…@googlegroups.**com.

You received this message because you are subscribed to the Google
.

.

On 30 January 2013 23:08, oto iashvili [email protected]
wrote:

hi

thanks for answer sorry I quite new in RoR. If I do how u said, will I have
to validate “manually” all the attributes for details ?

If you are new to rails there are probably many other basic features
that you are not aware of. I suggest you work right through a good
rails tutorial such as railstutorial.org, which is free to use online.
That will introduce you to the basics. Also look through the Rails
Guides, the one called Active Record Validations and Callbacks should
cover what you are looking for. Also look through the others.

Colin

hi

thanks for answer sorry I quite new in RoR. If I do how u said, will I
have
to validate “manually” all the attributes for details ?

Le mercredi 30 janvier 2013 15:27:43 UTC+1, jim a crit :