問題タブ [after-create]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
659 参照

ruby-on-rails - counter_cache は after_create フックで古くなっています

モデルの after_create フックのカウンター キャッシュ値に依存しています。ただし、カウンター キャッシュが更新される前にフックが呼び出されるため、計算が中断されます。

after_create で常に最新の値が表示されるように、カウンター キャッシュを強制的に「フラッシュ」する方法はありますか?

0 投票する
2 に答える
799 参照

ruby-on-rails - まだ存在しないため、after_create コールバック中に外部キーを取得できません!

いくつかのモデルがすべてメモリ内でリンクされており (親:子:子:子)、最上位の親を保存することで同時に保存されています。これはうまくいきます。

子の 1 人の after_create コールバックを利用して、変更ログ テーブルに入力したいと思います。changelog テーブルにコピー/プッシュする必要がある属性の 1 つは、直接の親に対する子のforeign_key ですが、after_create が起動した時点では存在しません!?!

after_create コールバックがなければ、ログを調べて、子が親の前に保存されていること (外部キーが空白) を確認できます。その後、親が挿入されます...その後、子は親からの IDで更新されます。子の after_create は適切なタイミングで起動していますが、Rails が子をforeign_keyで更新する前に発生しています。

このようなモデルのリンクを特定の順序で強制的に保存する方法はありますか? つまり、親、子 (親のforeign_keyが存在する)、その子の子(再びforeign_keyにアクセス可能)などです。そうでない場合、レコードが作成された後にルーチンを起動し、foreign_key を取得するにはどうすればよいでしょうか?

次のようなコールバックが役立つようです: after_create_with_foreign_keys

0 投票する
2 に答える
333 参照

ruby-on-rails - Railsは、新しいユーザーが作成されるたびにアプリケーションにデータをロードします

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

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

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

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

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

0 投票する
1 に答える
2914 参照

oracle - Oracle AFTER/BEFORE CREATE ON DATABASE トリガー: オブジェクト ソースへのアクセス方法

Oracle の疑似バージョン管理とリポジトリを実装しようとしています。アイデアは、保存された関数/プロシージャが変更されたとき、または作成されたグローバル DATABASE トリガーが起動されたときです。これにより、変更されたオブジェクトの現在のソースが取得され、テーブルに保存されます。だから私は2つのトリガーを使用しています:

AFTER_MODIFY トリガーがコンパイル済みオブジェクトの古いバージョン (ソース) を参照することを除いて、すべて正常に動作します。からソースを取得しようとSYS.SOURCE$.SOURCEしましたがdbms_metadata.get_ddl(OBJ_TYPE, OBJ_NAME, OBJ_OWNER)、同じ結果が得られました。

「Oracle 10g+ではできない」などのアドバイスや明確な回答を求めています。

0 投票する
1 に答える
16521 参照

ruby-on-rails-3 - モデルの条件で after_create を使用するにはどうすればよいですか

オブジェクトの作成後に呼び出されるメソッドがあります

これをオブジェクトの属性の値などの条件に制限する方法はありますか

例えば?

0 投票する
2 に答える
788 参照

ruby-on-rails - rails:after_createのメンバー変数へのアクセス

私は、評価に基づいて、特定のことが起こる必要がある調査アプリを構築しています。基本的に、合計評価が15未満の調査を提出する場合は、監督者に通知する必要があります。メーラーを使えば簡単ですが、after_createメソッドで評価データにアクセスできないようです。

私のモデルには、整数であるA、B、C、D、およびEという名前の5つのフィールドがあり、それらは形式で評価データを保持します。

:notationを試しました。self.notationを試しました。after_create(service)service.notationを試しましたが、何も機能しません。評価が15未満であることが認識されないため、メールは送信されません。

同様の問題があるチェックボックスもあります。データベースでは「true」と表示されますが、保存される前は通常1と表示されるため、正しい値をテストするのは難しいです。以下のコードと同様に、私もその値にアクセスできません。私が試したさまざまな方法をすべてリストアップしましたが、成功しませんでした。

明らかに、これらはすべて同時にモデルに存在するわけではありません。私が試みた例として、以下にリストされています。

after_create呼び出しでこれらのデータ値にアクセスするにはどうすればよいですか?!

0 投票する
2 に答える
349 参照

ruby-on-rails-3 - Rails3 - 関連するテーブル after_create にデフォルト値を追加する

親が作成された後に、関連付けられた DB を初期化する方法を探しています。

私は、フィールドを持つ単純なUserモデルと、フィールドを持つusername関連する ( has_many) 子Placeモデルを持っていますplacenames

ユーザーが正常に作成された後、表にPlacesはヨーロッパ、アジア、アフリカなどのエントリが表示されます。メソッドを使用する方法だと思いますがafter_create、親モデルから作成をトリガーする方法が見つかりません。

0 投票する
1 に答える
6491 参照

ruby-on-rails - Rails - 作成後のコールバックとネストされた属性の実行シーケンス

Userと UserProfileを使用したモデルの簡単なセットアップがUserあります。UserProfilehas_one :user_profilebelongs_to :user

しかし、Rails がafter_createコールバックの実行順序をaccepts_nested_attributes_for定義し、モデルで定義する方法について頭を悩ませることはできません。この2つのケースを考えてみましょう。

ケース 1:

ここで、コンソールを介して (user_profile_attributes ハッシュも使用して) ユーザーを作成するafter_createと、ユーザーとそのユーザー プロファイルが作成された後にコールバックがトリガーされます。

ケース 2:after_createを上に配置した 場合、

コールバックは、ユーザーが作成された後、ユーザー プロファイルを作成する前にトリガーされます。

これは、機能することが期待される方法です。ここでRailsは内部的に何をしますか? 実行順序は単純にコードの順番で決まるのでしょうか?

これをさらに深く掘り下げたり、デバッグしたりするには、どこから始めればよいですか?

0 投票する
0 に答える
655 参照

ruby-on-rails - after_create コールバックと検証 on_update を使用した Rails state_machine

モデル イベントでstate_machine gemを使用しています。

イベントの初期状態は保留中です。

イベントを作成するとき、after_create コールバックを実行して、イベントの属性に応じて最初の遷移を行うことができるかどうかを確認したいと考えています。

イベント モデルには、特定の属性が変更されていないかどうかをチェックする検証もあります。

今私の問題は、state_machine イベント :verify が after_create コールバックで呼び出されると、すべての値が nil から「初期値」に変更されたものとしてマークされ、前述の検証が失敗したために移行を実行できないことです。

今、私はこれがどのように可能であるかを本当に理解していません。after_create コールバックの場合、event.changes はどのように nil => すべての値に対して「初期値」を返すことができますか? 私には、イベントが初めて保存される前に after_create コールバックが呼び出されたようです。一度保存してからコールバックを作成すると、verifiy イベントを呼び出した後にイベントを保存しようとする前に、変更を呼び出すときに状態属性のみが変更されているはずです。

いくつかのコード例:

0 投票する
1 に答える
948 参照

ruby-on-rails - 関連付けからの値を使用するFriendly_id

私は次のモデルを持っています:

呼び出された時点でcreate_professor、実行は教授モデル()に渡され、このメソッドでスラッグself.professor = Professor.createを作成しようとすると、次のようになります。

を取得したundefined method first_name for nil:NilClassので、Professorオブジェクトは関連するユーザーが何であるかを知らないようです。

これを解決するためのヒントはありますか?