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;而且我有点不知道是什么错。有什么建议吗?
答案 0 :(得分:0)
正如house9所说,我的问题是,当我真的应该piece.p
时,我试着调用piece.send(p)
。仍然不能完全确定为什么你不能像我原来那样用迭代器循环替换p
的所有实例,但也许其他人可以解释。
无论如何,谢谢!