0

私のプロジェクトでは、RailsAdmin を使用しており、Product と Product_rate の 2 つのモデルがあります。

has_many :product_rates
belongs_to :product

rails_admin.rb のコードは

config.model Product do
  ....
  list do
    field :product_rates
  end

「field :product_rates」にproduct_ratesのランクを表示したい。product_rate モデルは次のようになります。

class ProductRate < ActiveRecord::Base
  belongs_to :product
  attr_accessible :rank, :product_id
end

最良の結果はランクサムで表示できます。例: 製品 XX のランクは 0、1、0、2 です。product_rates にランクの合計を表示したいのですが、これは 3 になります。

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

0

モデルにtotal_rankメソッドを追加して使用するのはどうですか。Product

class Product < ActiveRecord::Base
  has_many :product_rates

  def total_rank
    product_rates.map(&:rank).inject(:+)
  end
end

次に、あなたのinitializers/rails_admin.rb

config.model Product do
  ....
  list do
    field :total_rank do
      label "Rating"
    end
  end

多分それはあなたの質問に正確に答えません。ドキュメントによると、多分あなたはこのような何かを試してみたいと思うでしょう。

 list do
   field :product_rating do
     formatted_value do # used in form views
       value.map(&:rank).inject(:+)  # I'm assuming the value is an array of products
     end
   end
 end
于 2012-07-24T05:38:57.867 に答える