I'm trying to display every objets that a dresseur own but when I do in
app/views/dresseurs/index.html.erb
<% @dresseurs.each do |dresseur| %>
<tr>
<td><%= dresseur.objets%></td>
</tr>
<% end %>
It displays on my view
<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_Objet:0x007fc4d34c1f90>
app/controllers/dresseur_controller.rb
def index
@dresseurs = Dresseur.all
@objet = Objet.all
end
app/models/dresseur.rb
class Dresseur < ActiveRecord::Base
#Validations
before_save { self.email = email.downcase}
validates :pseudo, presence: true, length: {maximum:13}
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX },length {maximum:50}, uniqueness: {case_sensitive: false}
validates :password, length: { minimum: 6 }
#Associations
has_and_belongs_to_many :objets
end
app/models/objet.rb
class Objet < ActiveRecord::Base
has_and_belongs_to_many :dresseurs
end
Actually you are having relation between Dresseur
and Objet
model having has_and_belongs_to_many
so dresseur.objets
will return <ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_Objet
only(array).
so,you should loop again dresseur.objets
this and you should display.
<% @dresseurs.map do |dresseur| %>
<tr>
<td><% dresseur.objets.each do |obj|%>
<%=obj%>
<%end%></td>
</tr>
<% end %>