1

これがフォーマットされていないリストです (これは損益計算書で、これらのような行ヘッダーを超えているため、自動化がここに進む方法です)。

[「収益」、「その他の収益、合計」、「収益の合計」、「収益の費用、合計」...]

これは、各配列エンティティ (文字列) を単純な小さなサニタイザー プログラムで実行した後のリストCleanZeeString.new.go(str)です。

[「収益」、「その他の収益の合計」、「収益の合計」、「収益の合計の費用」...]

したがって、データベースの列の作成プロセスと移行を少なくとも部分的に自動化できるようにする Rails メソッドにアクセスしたいと考えています。このリストには 50 を超える行ヘッダーがあり、さらに多くのリストがあり、手動で行うことを単純に信じていないからです。もう。

4

1 に答える 1

0

後で(個人的な進歩):

  • この問題の解決には、移行に関してレールの「箱」の外に出ることが含まれると私は信じ始めています。はい、これを解決するには、移行について創造的に考える必要があると思います...

  • 手動で、または何らかのサードパーティのスクリプト ソリューションの助けを借りてこれを行うのがいかに簡単かは知っていますが、私は単に拒否します。必要に応じて、昨夜、数杯飲んだ後、これを自動的に行うことができたはずです. 配列と、各列が同じ型 (レールでは「10 進数」) であるという事実を考えると、これは自動的にレールのような方法で実行できるはずです。

  • 移行ファイルは通常の ruby​​ ファイルです。その事実に基づいて解決に取り組んでいます。ファンシーになる時間。文字列#to_sym

とった - -

class CreateIncomeStatements < ActiveRecord::Migration
  def change
    f = File.open(File.join(Rails.root, 'lib', 'assets', 'is_list.json')) 
    is_ary = JSON.parse(f.read)
    create_table :income_statements do |t|
      is_ary.each do |k|
      eval("t.decimal k.to_sym")
      end
      t.timestamps
    end
  end
end

私はそのeval()方法を使って、先生の幽霊が私の手首を叩くのを感じましたが、うまくいきました. 肝心なのは、移行ファイルは ruby​​ ファイルに過ぎないという事実を再考したことでした。

于 2012-10-27T22:47:30.880 に答える