2016-10-18 1 views
0

私はRuby-on-Railsでプロジェクトを作成しています。私は販売CRUDを持っています。セールには「日付」属性があります。複数の日付が選択されている場合にフォームを送信した後、販売を複製するシステムが必要です。Railsの追加属性の有無によるオブジェクトの複製

どうすれば実装できますか?

私の心に来る唯一の方法は次のとおりです。

  1. 追加の列を作成します:売上dbテーブルでadditional_datesを。
  2. フォームにadditional_datesフィールドを追加します。
  3. モデルを保存するafter_saveコールバックを追加します。コールバックは salesをself.additional_datesに基づいて複製し、 の後に列をクリーニングします。

私はこれが「Railsの方法」から遠いことを知っています。それで、これを行うためのもっとエレガントな方法がありますか?

答えて

1

additional_datesのデータベースに特定の列を作成する必要はありません。セールモデルでは、単にadditional_datesを属性として追加することができます。

attr_accessor :additional_dates

これは、あなたのフォームまたは任意の場所で他の人のように、この属性と対話してみましょう。

次に、after_saveコールバックまたはbefore_saveコールバックで、additional_datesごとに販売を複製できます。

関連する問題