Ruby-コードの一部をデータベースに保存する

今日、私はインタープリター言語の「チップ」を使用する別の方法を見つけました-プログラム中にプログラムコードを作成して実行します。

コードの一部をデータベースに配置できます。

これは何のためですか?

私はそのような仕事に出会いました-オンラインテストを書くこと。
各テストには、ユーザーの回答が割り当てられた結果の説明番号の機能があります

また、テストごとにこの関数は異なる場合があります。 そして、新しいテストを追加するたびに、サイトのプログラムコードを変更したくありません。 私が見つけた解決策は、このコードをデータベースのテキストタイプフィールドに保存することでした。

そして、テスト結果を計算したい場所で、次のように書きます:
eval(@ test.function)

関数-これは、テストを説明するデータベーステーブル内のセルです。
コードは単にプログラムのこの場所に挿入されて実行され、ユーザー応答の結果をパラメーターとして渡す必要さえありません。

確かに、ローカル変数を宣言するためにevalによって渡された行内にある場合、外部プログラムはそれを表示しません(少なくともコンソールではすべては大丈夫でしたが、表示されませんでした)。

私は、厳密なOOPの愛好家からの公正な批判を疑っています。 しかし、私はこの例をOOPと一致させません;望むなら、実験してください。

Source: https://habr.com/ru/post/J66204/


All Articles