1

これを行う「正しい」方法を見つけようとしています。

私のアプリケーションでは、新しいユーザーを作成するたびに、特定のデータを関連付けられたテーブルにロードしたいと考えています。関連するテーブルは、別のプリセット リストです。したがって、ユーザーには多くのリストがあり、それらのリストには多くのアイテムがあります。ユーザーの作成時にロードしたいアイテムのいくつか。

これを行う方法は本当にわかりませんが、次のようなことを推測しています: create User after_create: リストを作成します (リスト名には既存のデータが必要です) after_create List を作成し、Items テーブルにこれらのリストの既存のデータを入力します。

これにはシードデータを使用する必要がありますか? それは生産に問題ありませんか?もしそうなら、どうやってそれを行うつもりですか?

ガイダンスやその他の推奨事項は大歓迎です。

4

2 に答える 2

1

シードは、アプリケーションの最初の展開でデータを挿入するためのものです。

特定のイベントに関連付けられたレコードを作成している場合は、この方法がおそらく最善の方法です。大量のデータがある場合は、YAML などに外部化できますが、after_create はいくつかの状況でうまく機能します。

class User < ActiveRecord

  def after_create
     List.create
  end
end

うまく機能する便利なトリックの 1 つは、システムに正規ユーザーを配置することです。このデータをロードし、現在のユーザー用に複製します。

于 2010-03-28T21:46:22.640 に答える
0

シードの使用は、リストのようなアプリケーションに必要なすべてのデータを挿入するために実際に作られています。

私にとっては良い方法です。私はいくつかのポインタを持っていません。たとえば、redmine にはブートストラップの挿入があります。

于 2010-03-28T20:33:55.327 に答える