-1

У меня есть модель продуктов с отношением 'has_many' к Microposts. Аналогично, Microposts имеет отношение «принадлежит» к продуктам. В этом отношении я хочу заполнить строку в таблице всеми доступными микропостями для этого продукта. Из того, что я могу сказать, ассоциация работает нормально, и строки могут отображать контент, однако вместо # фактического содержимого отображается «#Micropost :: ActiveRecord_Associations_CollectionProxy: 0x007fa5ba8b4d60».Показать содержимое через ActiveRecord_Association_CollectionProxy

Micropost.rb

class Micropost < ActiveRecord::Base 
    belongs_to :product 
    default_scope -> { order(created_at: :desc) } 
    validates :product_id, presence: true 
    validates :content, presence: true 
end 

Product.rb

class Product < ActiveRecord::Base 
before_save{ 
self.name = name.downcase.humanize} 
before_save{ 
self.oem = oem.downcase.humanize} 

validates :ta_code, presence: true, length: { maximum: 4, minimum: 3 } 
validates :tatr, presence: true, length: { maximum: 4, minimum: 4 },  uniqueness: true 
validates :name, presence: true 
validates :oem, presence: true 
validates :kind, presence: true 
validates :ta_type, presence: true 
has_many :microposts 
end 

код

<% Product.all.each do |product| %> 
. 
. 
. 
<% if product.microposts.any? %> 
      <ul class="microposts"> 
       <% product.microposts.each do |micropost| %> 
       <li><%= micropost.content %></li> 
       <% end %> 
       </ul> 
      <%= link_to "Update status", new_status_path(product_id: product.id), :method => :create %> 
      <% else %> 
      <%= link_to "Update status", new_status_path(product_id: product.id), :method => :create %> 
      <% end %> 

ответ

0

Вы могли бы просто изменение дисплей часть следующей

<% Product.all.each do |product| %> 
. 
. 
. 
    <ul class="microposts"> 
    <%product.microposts.each do |micropost| %> 
     <li><%=micropost.content%></li> 
    <% end %> 
    </ul> 
+0

Я все еще получаю тот же ActiveRecord_association_CollectionProxy дисплей – Houghtonbrad

+0

О мой плохой, я сделал небольшую ошибку в ответе, я исправил его. пожалуйста, дайте мне знать, если он работает сейчас. – Ojash

+0

Все тот же дисплей – Houghtonbrad

Смежные вопросы