Which associations should I use? to extend ad model.

20 views
Skip to first unread message

regedarek

unread,
Feb 8, 2012, 12:10:08 PM2/8/12
to rubyonra...@googlegroups.com
I would like to use only one table ads on database.

regular AD:
  :title
  :price
  :content
  :username

trip AD:
  :title
  :price
  :content
  :username
  :from
  :to

Which associations should I use?
  Polymorphic Associations
  The has_and_belongs_to_many
  Else?

regedarek

unread,
Feb 8, 2012, 1:40:32 PM2/8/12
to rubyonra...@googlegroups.com
I create a Gist with my recent ideas: https://gist.github.com/1770515

gerbdla

unread,
Feb 8, 2012, 2:06:56 PM2/8/12
to Ruby on Rails: Talk
what are the other objects? What is it that has_and_belongs_to_many?
for polymorphic relationships you want to ask if more than one
So
class Ad
belongs_to :adable, :polymorphic => true
end

class Customer
has_many :ads, :as => :adable
end

class NewsPaper
has_many :ads, :as=>:adable
end


At least I think this is what you are looking for. Maybe some others
will give advice.






On Feb 8, 10:40 am, regedarek <dariusz.fins...@gmail.com> wrote:
> I create a Gist with my recent ideas:https://gist.github.com/1770515
> ** <http://groups.google.com/group/rubyonrails-talk?hl=pl>

Erwin

unread,
Feb 8, 2012, 4:54:30 PM2/8/12
to Ruby on Rails: Talk
STI , Single Table Inheritance (This structure is best used for
models that have identical, or very similar attributes )

trip AD << regular AD

class RegularAd < ActiveRecord::Base
end
class TripAd < RegularAd
end

migration (Rails 3.1)
class CreateAds < ActiveRecord::Migration
def change
create_table(:regular_ads) do |t|
t.string : title
t.float : price
t.string : content
t.string : username
t.integer : from
t.integer: to
end
end
end

regedarek

unread,
Feb 9, 2012, 8:28:21 PM2/9/12
to rubyonra...@googlegroups.com
I think form me i should be something like this below because I need different validations to each type of ads. Or in your example could i set up this kind of different validations?
 
class Ad < ActiveRecord::Base
  validates_presence_of :name, :email, :price(?), :category_id(?)

  :name
  :phone_number
  :email
  :advertiser_id
  :token
  :verification_date
  :level
  :category_id
  :admin_id
  :price
  :display_counter
  :type
end

class RegularAd < Ad
  validates_presence_of :title, :ad_content

  :title
  :ad_content
end

class RideAd < Ad
  validates_presence_of :from, :to

  :from
  :to
end
Reply all
Reply to author
Forward
0 new messages