0

申し訳ありませんが、これはすでに質問されていますが、私は似たような質問は見つかりません。ネストされたリソースコマンドラインのすべてのユーザーに対してcreate_checklist has_oneの関連付け

使用して、レール

5.私は二重の入れ子状のリソース

resources :users do 
    resources :checklists do 
     resources :checklist_items do 
      member do 
       patch :completed 
      end 
     end 
    end 
end 

を持っていると私は

user.rb

user has_one :checklist 

checklist.rbを持っています

checklist belongs_to :user 

そして私は、コマンドラインで一人のユーザのための新しいチェックリストを作成する方法を知っている:

User.checklist.create 

今、私はコマンドラインを経由して、データベース内のすべての既存のユーザーのための新しいチェックリストを作成したいです。この仮想コマンドのように並べ替えます。

User.all.checklist_create 

すべてのユーザーがチェックリストを取得します。これをどのように達成するのですか?

答えて

1

これは私にとってはうまくいったが、それを達成するためにはもっと短い方法があるだろうか? RailsとRubyの

User.all.each do |user| 
user.create_checklist 
end 
+0

User.all.each {| u | u.create_checklist} – dthal

0

は、メタプログラミングの多くで満たされ、あなたが実際に示唆しているかのような方法が存在する場合、私は驚きではありません。しかし、デザインの観点からは、それは過度のものになると私は思う。 10K +ユーザーがいて、その1つのコマンドを使用してすべての10kユーザーのチケットを作成するとしたらどうでしょうか?各チケットのフィールドはどうですか? ここであなたの問題を解決するには、自分の考え方に合わせて考えることができるオプションはほとんどありません。

工場の女の子と

ファクトリー・ガール

、あなたがcreate_listbuild listのようなメソッドを持って、より多くのために彼らのドキュメントをチェックしてください。彼らの名前から、彼らは直感的に見える。これらのメソッドは、いくつかのオブジェクトのリストを作成するのに役立ち、ファクトリをどのように構造化するかに基づいて、必要なものを1行にまとめることができます。

Seed.rb

Railsはあなたには、いくつかのデフォルト値を使用してデータベースをシードするためにあるべきRubyスクリプトを追加することができますseed.rbファイルを提供します。デフォルトでは、seed.rbファイルにサンプルスクリプトがあり、これを参照して必要な構造を設定することができます。

しかし、このオプションを使用したいだけであれば、テスト/ダミーデータを悲しいままに再生することが必要な場合は、ユースケースが異なる場合があります。しかし、テストのためにこのデータが必要な場合は、TDDの方法に従うことをお勧めします。これがあなたを助けることを願ってください。

関連する問題