Ok, I've been on this issue for several hours already. If someone with more RoR experience can help me out. It will be much appreciated.
A small description of what I am trying to do. In the deal show view. I want to display comments for a particular deal. So far everything works, except that I am unable to list down the comments. I can submit comments without any problems. Here is my code: social migration: class CreateSocials < ActiveRecord::Migration def self.up create_table :socials do |t| t.references :user t.references :deal t.references :entity, :polymorphic => true #t.references :commentable, :polymorphic => true t.timestamps end end def self.down drop_table :socials end end ----------- social model class class Social < ActiveRecord::Base belongs_to :deal belongs_to :user belongs_to :entity, :polymorphic => true has_many :comments #has_one :comment, :dependent => :destroy #Social table should have belongs_to :entity, :polymorphic => true #t.references :entity, :polymorphic => true #belongs_to :entity, :polymorphic => true end ---------- comment migration: class CreateComments < ActiveRecord::Migration def self.up create_table :comments do |t| #t.references :user #t.references :entity, :polymorphic => true #t.integer :commentable_id #t.string :commentable_type t.text :comment t.timestamps end end def self.down drop_table :comments end end -------- comment model class: class Comment < ActiveRecord::Base #belongs_to :user #belongs_to :entity, :polymorphic => true #has_one :social #belongs_to :user #def after_create #why dont you make the form on Comment, and create the Social record in Comments after_create hook or something like that? #Social.create(:entity => self) #end end -------- deal migration: class CreateDeals < ActiveRecord::Migration def self.up create_table :deals do |t| t.references :city t.references :user t.string :title t.text :description t.integer :price t.integer :value t.integer :discount t.integer :savings t.integer :goal t.datetime :countdown t.integer :purchased t.timestamps end end def self.down drop_table :deals end end ----------- deal model class class Deal < ActiveRecord::Base validates_presence_of :city_id validates_presence_of :title, :description, :price, :value, :discount, :savings, :goal, :countdown, :purchased validates_length_of :title, :minimum => 5 belongs_to :city belongs_to :user has_many :features, :dependent => :destroy has_many :photos, :dependent => :destroy has_many :socials, :as => :entity #has_many :comments, :through => :socials, :source => :comments #has_many :socials; has_many :comments, :through => :socials #has_many :social, :dependent => :destroy #has_many :socials, :as => :entity accepts_nested_attributes_for :features, :reject_if => lambda { |a| a[:description].blank? }, :allow_destroy => true accepts_nested_attributes_for :photos, :reject_if => lambda { |a| a[:photo].blank? }, :allow_destroy => true #has_attached_file :photo, :styles => { :small => "150x150>" }, # :url => "/assets/ deals/:id/:style/:basename.:extension", # :path => ":rails_root/public/assets/ deals/:id/:style/:basename.:extension" #validates_attachment_presence :photo #validates_attachment_size :photo, :less_than => 5.megabytes #validates_attachment_content_type :photo, :content_type => ['image/ jpeg', 'image/png'] #def self.search(search, page) # paginate :per_page => 1, :page => page, # #:conditions => ['name like ?', "%#{search}%"], # :order => 'created_at' #end define_index do indexes title, :sortable => true indexes description #indexes :name, :sortable => true #indexes comments.content, :as => :comment_content #indexes [author.first_name, author.last_name], :as => :author_name indexes [user.first_name, user.last_name], :as => :full_name #has author_id, created_at has created_at end def comments # self.socials.collect { |a| a.comment } #Comment.find(:conditions => 'id = 1') self.socials.collect { |a| a.comment } end end -------- This is my view: deal show view: ... some html stuff here pertaining to the @deal object ... <table> <tr> <th>Comments</th> </tr> <% @deal.comments.each do |comment| %> <tr> <td><%=h comment.comment %></td> <td><%= link_to 'Show', comment %></td> <td><%= link_to 'Edit', edit_comment_path(comment) %></td> <td><%= link_to 'Destroy', comment, :confirm => 'Are you sure?', :method => :delete %></td> </tr> <% end %> </table> <% form_for [...@comment, Comment.new] do |f| %> <%= f.error_messages %> <%= hidden_field_tag :deal_id, params[:id] %> <p> <%= f.label :comment, 'New comment' %><br /> <%= f.text_area :comment %> </p> <p><%= f.submit 'Add comment' %></p> <% end %> The problem is. ":through" does not work properly with polymorphic associations... Any assistance on this issue is a big help. -- 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-t...@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.