2012-04-01 11 views
5

मैं किसी भी तरह प्रदर्शित करने के लिए active_admin order show page, कोई भाग्य में order के लिए line items कोशिश कर रहा हूँ .. कि एक और आइटम के अंतर्गत आता है मदों की एक सूची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 

जब मैं शो आदेश क्लिक करें, यह इस आदेश के लिए आइटम .. आवेदन के दशक में प्रदर्शित करना चाहिए फ़ाइल दिखाएं मैंने इसे

के साथ किया

_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 को

धन्यवाद मैं अंत में 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 

में आदेश show_page में line_items पाने के लिए मैं अब के लिए उत्पाद की आईडी मिल में कामयाब रहे, लेकिन इसे यहाँ से दूर नहीं है जो मैं चाहता हूं उसे पाने के लिए। चीयर्स!

उत्तर

10

इस तरह कुछ काम कर सकते हैं:

ActiveAdmin.register Order do 
    show do |order| 
    div do  
     panel("Items") do 
     table_for(order.line_items) do 
      column :quantity 
      column "Title" do |i| 
      i.product.title 
      end 
      column "Price" do |i| 
      number_to_current(i.total_price) 
      end 
     end 
     end 
    end 
    end 
end 

एक और असंबंधित उदाहरण है जो आप एक संकेत दे सकता है:

# => Show 
    show :title => :date do |gallery| 
    panel "Galería" do 
     attributes_table_for gallery, :name, :description, :date 
    end 

    panel "Fotos" do 
     table_for(gallery.gallery_files) do 
     column "Título", :title 
     column "Fecha", :date 
     column "Foto" do |image| 
      image_tag image.file.url(:thumb).to_s 
     end 
     end 
    end 

    end 
+0

सिंटैक्स त्रुटि, अप्रत्याशित '{', उम्मीद kEND स्तंभ 'शीर्षक' {उत्पाद .title} इस प्रकार की 4 त्रुटियां हैं, प्रत्येक के लिए 1 "{" क्या आप इसे देख सकते हैं? कम से कम कोशिश करने के लिए बहुत बहुत धन्यवाद। – rmagnum2002

+0

यह कॉलम बनाता है, इस चीज़ को केवल मैं वोट देता हूं, यह वास्तव में सहायक था, लेकिन मुझे वास्तव में सक्रिय व्यवस्थापक में काम करने के लिए यह संबंध प्राप्त करने की आवश्यकता है। – rmagnum2002

+0

मुझे लगता है कि शायद {} नोटेशन ActiveAdmin के साथ काम नहीं कर सकता है, मैं जवाब अपडेट कर दूंगा। – bruno077