problem with Associations idea

Hi, i have two models:

User<...
   has_many :photos, :dependent => :destroy
   ...

Photo<...
   belongs_to :user
   ...

and I need Attribute model such as each photo has many attributes.
And here I'm not sure whether Attribute should be has_many: photos or
belongs_to :photo.
Moreover i need to use on photos and attributes FCA algorism to build
lattice and perhaps write it to db.
   So do I need next model (eg. Lattice), maybe I should use
has_many :through ?
I use rails three weeks so I please for help as simple example
( doesn't have to be pro :slight_smile: )
how to associate these models.
   Thank you in advance for your help.

Hi, i have two models:

User<...
  has_many :photos, :dependent => :destroy
  ...

Photo<...
  belongs_to :user
  ...

and I need Attribute model such as each photo has many attributes.
And here I'm not sure whether Attribute should be has_many: photos or
belongs_to :photo.

Can you give some examples of what your attributes are? You probably want to avoid calling the association attributes - that will collide with an internal activerecord method.

Fred

W dniu 2011-03-19 20:32, Frederick Cheung pisze:

Hi, i have two models:

User<...
   has_many :photos, :dependent => :destroy
   ...

Photo<...
   belongs_to :user
   ...

and I need Attribute model such as each photo has many attributes.
And here I'm not sure whether Attribute should be has_many: photos or
belongs_to :photo.

Can you give some examples of what your attributes are? You probably want to avoid calling the association attributes - that will collide with an internal activerecord method.

Fred

App has to work in this way, user add photo and then add attributes to photo on example (Baltic Sea.jpg; sea, water, sand ).
Then usning Formal concept analysis (not relevant) special paris are created {(photo,...,photo n),(attribute,...,attribute n)}
and it should be remember in some way (i suppose best will be another table), because it will be modefied when photo table or
attribute table will change.
I can't find out the best way how associations between models should look like and how many models i need.

Bartek.

You are going to want to do a has_many in the Photo model to PhotoAttribute model. This will allow you to have the PhotoAttribute model be a list of all the attributes that a photo can have. From what you explained this sound like what you wanted to do with that table anyway. Your final models would look like this:

class User < ActiverRecord::Base

has_many :photos, :dependent => :destroy
end

class Photo < ActiveRecord::Base

belongs_to :user
has_many :photo_attributes
end

class PhotoAttribute < ActiveRecord::Base

Sorry, I hit “Send” before I finished typing and proofing. Below is the corrected and finished model layout. You don’t want to use Attribute as the name of a model or table.

class User < ActiverRecord::Base

has_many :photos, :dependent => :destroy

end

class Photo < ActiveRecord::Base

belongs_to :user
has_many :photo_attributes
end

class PhotoAttribute < ActiveRecord::Base
belongs_to :photo
belongs_to :photo_descriptor
end

class PhotoDescriptor < ActiveRecord::Base

has_many :photo_attributes
end

Your PhotoDescriptor model would be the list of descriptions/attributes found in the photo (sea,green,sand,etc.).

B.