首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法显示视图中两个对象之间的归属

无法显示视图中两个对象之间的归属
EN

Stack Overflow用户
提问于 2014-04-26 15:01:17
回答 3查看 41关注 0票数 0

我试着展示一位裁缝所拥有的每一份布匹,但当我进去时

app/views/dresseurs/index.html.erb

代码语言:javascript
复制
<% @dresseurs.each do |dresseur| %>
  <tr>
    <td><%= dresseur.objets%></td>
  </tr>
<% end %>

它显示在我的视野里

代码语言:javascript
复制
<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_Objet:0x007fc4d34c1f90>

app/controllers/dresseur_controller.rb

代码语言:javascript
复制
def index
  @dresseurs = Dresseur.all
  @objet = Objet.all
end

app/models/dresseur.rb

代码语言:javascript
复制
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

代码语言:javascript
复制
class Objet < ActiveRecord::Base
  has_and_belongs_to_many :dresseurs
end
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-26 15:57:18

实际上,Dresseur与具有has_and_belongs_to_manyObjet模型之间存在关系,因此dresseur.objets只返回<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_Objet (数组)。

因此,您应该再次循环dresseur.objets,然后显示。

代码语言:javascript
复制
<% @dresseurs.map do |dresseur| %>
 <tr>
  <td><% dresseur.objets.each do |obj|%>
   <%=obj%>
  <%end%></td>
 </tr>
<% end %>
票数 0
EN

Stack Overflow用户

发布于 2014-04-26 15:05:09

试着用map代替

代码语言:javascript
复制
<% @dresseurs.map do |dresseur| %>
  <tr>
    <td><%= dresseur.objets%></td>
  </tr>
<% end %>
票数 0
EN

Stack Overflow用户

发布于 2014-04-26 15:19:01

因为每个dresseur都有许多objets,所以您得到的是对objets容器的引用。根据您想要做的事情,您可能需要这样做:

代码语言:javascript
复制
<% @dresseurs.each do |dresseur| %>
  <tr>
    <% dresseur.objets.each do |objet|
      <td><%= objet.id %></td>
    <% end %>
  </tr>
<% end %>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23312636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档