active_admin - отобразить список элементов, принадлежащих другому элементу

Я пытаюсь каким-то образом отобразить позиции для заказа на странице отображения заказа active_admin , не повезло..

вот отношения между моделями:

order.rb

class Order < ActiveRecord::Base
  has_many :line_items, :dependent => :destroy
  # ...
  validates :name, :address, :email, :presence => true
  validates :pay_type, :inclusion => PAYMENT_TYPES
end

line_item.rb

class LineItem < ActiveRecord::Base
  belongs_to :order
  belongs_to :product
  belongs_to :cart

  def total_price
    product.price * quantity
  end

end

active_admin order.rb

ActiveAdmin.register Order do

  show do
    attributes_table :name, :email, :address, :pay_type, :created_at, :updated_at
  end
end

active_admin line_item.rb

class LineItem < ActiveRecord::Base
  belongs_to :order
  belongs_to :product
  belongs_to :cart

  def total_price
    product.price * quantity
  end

end

когда я нажимаю показать порядок, он должен отображать элементы для этого заказа. В файле шоу приложения я сделал это с помощью

<%= render @order.line_items %>

_line_items.html.erb

<!-- START_HIGHLIGHT -->
<% if line_item == @current_item %>
    <tr id="current_item">
  <% else %>
<tr>
<% end %>
<!-- END_HIGHLIGHT -->
  <td><%= line_item.quantity %>&times;</td>
  <td><%= line_item.product.title %></td>
  <td class="item_price"><%= number_to_currency(line_item.total_price) %></td>
</tr>

, и элементы находятся на странице, но в Active_Admin я не знаю, как заставить это работать .. Пожалуйста помоги. Спасибо за уделенное время.

Решено

Благодаря bruno077 мне наконец-то удалось получить line_items в порядке show_page в ActiveAdmin

 show do |order|

  panel "Customer details" do
    attributes_table_for order, :first_name, :last_name, :card_type, :created_at, :ip_address
  end

  panel("Products for this order") do
    table_for(order.line_items) do
      column "Product" do |item| 
        item.product.title
      end
      column "Price" do |item| 
        item.product.price
      end
      column "Quantity" do |item| 
        item.quantity
      end
    end
  end
end

На данный момент я получил ID продукта, но это недалеко, чтобы получить то, что я хочу. Ваше здоровье!

5
задан rmagnum2002 3 April 2012 в 09:57
поделиться