我正在尝试显示dresseur拥有的每个对象,但是当我在
时应用/视图/ dresseurs / index.html.erb
<% @dresseurs.each do |dresseur| %>
<tr>
<td><%= dresseur.objets%></td>
</tr>
<% end %>
它显示在我的视图
上<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_Objet:0x007fc4d34c1f90>
应用/控制器/ dresseur_controller.rb
def index
@dresseurs = Dresseur.all
@objet = Objet.all
end
应用/模型/ 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
应用/模型/ objet.rb
class Objet < ActiveRecord::Base
has_and_belongs_to_many :dresseurs
end
答案 0 :(得分:0)
尝试使用map
代替
<% @dresseurs.map do |dresseur| %>
<tr>
<td><%= dresseur.objets%></td>
</tr>
<% end %>
答案 1 :(得分:0)
因为每个dresseur
都有很多objets
,所以你得到的是对objets
容器的引用。根据您的想法,您可能希望执行以下操作:
<% @dresseurs.each do |dresseur| %>
<tr>
<% dresseur.objets.each do |objet|
<td><%= objet.id %></td>
<% end %>
</tr>
<% end %>
答案 2 :(得分:0)
实际上,Dresseur
和Objet
模型之间存在has_and_belongs_to_many
的关联,因此dresseur.objets
将只返回<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_Objet
(数组)。
所以,你应该再次循环dresseur.objets
,你应该显示。
<% @dresseurs.map do |dresseur| %>
<tr>
<td><% dresseur.objets.each do |obj|%>
<%=obj%>
<%end%></td>
</tr>
<% end %>