2

さまざまな企業の販売手数料を計算する必要がある RoR アプリケーションを構築しています。アプリケーションが稼働した後、新しい企業が使用を開始すると、新しい手数料モデルが登場します。これらのコミッションは通常、複雑な MS Excel 式として表されますが、常にではありません。これらを Ruby に再実装する必要があります。

例として、コミッション モデルは以下の行を合計したものです。

column_1 * ( column_2 / column_3)
if ( column_6 > column_1 ) column_5 * column_4
if ( column_2 < column_1 ) column_2

稼働後に新しい手数料モデルがあることを考えると、これらをデータベースに保存する最良の方法は何ですか? (この部分は過度にユーザーフレンドリーである必要はありません。新しいモデルを追加するのは開発者だけです)

eval明らかに、これはDBから上記を読み取ることで実行できます。セキュリティ上の懸念は別として、「クリーンな」ソリューションとは思えません。

他にどうすればこれに取り組むことができますか?

私は DSL を研究しており、Excel ファイルをブラック ボックスの電卓やフォーミュラ ジェムとして使用していますが、これを行う良い方法を見つけるのに苦労しています。

ティア

4

1 に答える 1

0

Re:ブラックボックス計算機としてExcelファイルを使用し、RubyでExcelファイルを生成するためにaxlsxを使用していますが、次のような方法で機能すると思います。

require 'axlsx'
Axlsx::Package.new do |p|
  p.workbook do |wb|  
    wb.add_worksheet do |sheet|
      sheet.add_row [column_1,column_2,column_3]
      sheet.add_row ["=A1*(B1/C1)"]
    end
  end
  p.serialize('results.xlsx')
end

ただし、数式は実際にはExcelによって実行されるため、この方法でコードにアクセスすることはできず、Excelの出力でのみアクセスできます。

これは現時点で1か月前の質問であることを知っているので、どちらかといえば、あなたが何をしたのか興味があります。

于 2012-05-08T22:20:34.347 に答える