我试着展示一位裁缝所拥有的每一份布匹,但当我进去时
app/views/dresseurs/index.html.erb
<% @dresseurs.each do |dresseur| %>
<tr>
<td><%= dresseur.objets%></td>
</tr>
<% end %>它显示在我的视野里
<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_Objet:0x007fc4d34c1f90>app/controllers/dresseur_controller.rb
def index
@dresseurs = Dresseur.all
@objet = Objet.all
endapp/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
endapp/models/objet.rb
class Objet < ActiveRecord::Base
has_and_belongs_to_many :dresseurs
end发布于 2014-04-26 15:57:18
实际上,Dresseur与具有has_and_belongs_to_many的Objet模型之间存在关系,因此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 %>发布于 2014-04-26 15:05:09
试着用map代替
<% @dresseurs.map do |dresseur| %>
<tr>
<td><%= dresseur.objets%></td>
</tr>
<% end %>发布于 2014-04-26 15:19:01
因为每个dresseur都有许多objets,所以您得到的是对objets容器的引用。根据您想要做的事情,您可能需要这样做:
<% @dresseurs.each do |dresseur| %>
<tr>
<% dresseur.objets.each do |objet|
<td><%= objet.id %></td>
<% end %>
</tr>
<% end %>https://stackoverflow.com/questions/23312636
复制相似问题