迭代active_admin模型上的列

时间:2013-12-06 04:56:47

标签: ruby-on-rails ruby

Ruby和Rails的新手,所以也许我没有以正确的方式搜索/询问。我使用ActiveAdmin gem并希望将其转为:

column :purchase_price, :sortable => :purchase_price do |piece| 
  div :class => "price" do
    number_to_currency piece.purchase_price 
  end
end
column :appraised_value, :sortable => :appraised_value do |piece|
  div :class => "price" do
    number_to_currency piece.appraised_value
  end
end
column :sale_price, :sortable => :sale_price do |piece|
  div :class => "price" do
    number_to_currency piece.sale_price
  end
end

进入这个:

price_array = [:purchase_price, :appraised_value, :sale_price] 
price_array.each do |p|
  column p, :sortable => p do |piece|
    div :class => "price" do
      number_to_currency piece.p
    end
  end
end

......为了DRY的利益。

较长的解决方案有效,但较短的解决方案在Admin :: Pieces#index"中提供了#34; NoMethodError;而且我有点不知道是什么错。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

正如house9所说,我的问题是,当我真的应该piece.p时,我试着调用piece.send(p)。仍然不能完全确定为什么你不能像我原来那样用迭代器循环替换p的所有实例,但也许其他人可以解释。

无论如何,谢谢!