問題タブ [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 に答える
6593 参照

ruby-on-rails - Rails:保存を停止するafter_createの例外

簡単な質問。レコードが保存された後に後処理を実行したいActiveRecordモデルがあります。そのため、モデルには、Resqueキューにジョブを固定するqueue_for_processingメソッドがあります。レコードが正常に永続化された後にこれを実行するために、モデルに次のように記述しました。

ものすごく単純。昨夜、redisサーバーがダウンし、問題が発生したことを除いて、すべてが期待どおりに機能していると思っていました。私の期待は、レコードがまだ保存され、後で手動でジョブを処理できることでした。しかし、queue_for_processingメソッドは例外(予期される動作)をスローし、レコードの保存を停止しています。

after_createがどのように機能するか誤解していますか?それとも私の理解は正しく、何かファンキーなことが起こっていますか?

ありがとう。

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

ruby-on-rails - after_createはレコードを破棄します

私は2つのテーブルの予約とレンタルを持っています。ユーザーがレンタカーを予約し、管理者がレンタルを承認します。

管理者がレンタルを承認すると。予約は不要になりました。レンタルレコードの作成と同時に予約レコードを削除するにはどうすればよいですか。

これは私の試みでした(私はルビーに不慣れなので、私が愚かであるならapolagies)

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

ruby-on-rails - has_secure_password を持つ oauth ユーザーの場合にダミーの password_digest を設定するための after_create

User モデルで has_secure_password を使用しています。ユーザーが oauth 経由でサインアップした場合、password_digest 文字列をダミーの値に設定したいと思います。現在、私はfacebookのみを行っており、ユーザーをfacebook_idで保存しています。次の同様のロジックを追加したいと思います。

ただし、update_password_digest_if_from_facebook の部分は正しく呼び出されていません。ここで自分自身にアクセスできますか?

これは確かに has_secure_password をバイパスするハックな方法ですが、self.facebook_id への呼び出しが実行されないのはなぜですか? この時点で自分自身にアクセスする必要があるようです。

thx事前に

0 投票する
3 に答える
78 参照

ruby-on-rails - サインアップでベータ招待者に従ってください

このチュートリアルに従って、ベータ招待システムを作成しました。http://railscasts.com/episodes/124-beta-invitations。ユーザーは、Rails アプリで相互にフォローすることもできます。

サインアップ時に招待した人を招待者にフォローさせるにはどうすればよいですか?

現在、メソッドを使用してユーザー モデルでこれを確立しようとしていますが、sender_id/user_id を介して招待者が招待者をフォローできるようにするメソッドの作成に問題があります。

これは私がこれまでに使用したコードです。

スキーマ

モデル

ユーザー

関係

招待

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

ruby-on-rails - after_create を使用してカートの order_id を更新する

まず、カートをセッションに保存します。カートには品目 (製品) が含まれています。チェックアウト ボタンは、cart_id が新しい注文に渡された Order.new フォームにつながります (cart has_one order、order belongs_to cart)。

うまくいけば、これまでのところとても良いです。

カートのパラメーターには、ユーザーがチェックアウト ボタンを押すまで、最初は nil である order_id が含まれます。注文が作成されたとき、カートの order_id はまだ nil です。注文モデルで after_create を使用して、有効な order_id を持つようにカートを更新するにはどうすればよいですか?

アプリケーションコントローラーに current_cart メソッドがあるため、すべてのコントローラーで current_cart にアクセスできますが、モデルではアクセスできません->セッションに保存されているため、不要だと聞いていますとにかくモデル内のセッションにアクセスします。

これをどのように行うことをお勧めしますか?

私の説明が明確でない場合に備えて、いくつかのコードを示します。

orders_controller.rb

レールコンソール

それは本当に重要ですか?たぶん私は偏執的ですが、注文からのcart_idだけでなく、カートからのorder_idにもアクセスできるようにすることをお勧めします。

ありがとう、パット

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

ruby-on-rails - Rails: 作成後のオブジェクトの関連付け

ステップバイステップの説明を表示するサイトを作成しようとしています。ユーザーは質問を表示し、回答を選択します。回答ビューを以下に示します。

ユーザーが「回答」を選択すると、Step フォームをレンダリングする Step#new にリダイレクトします。

関連する質問を URL から隠しフィールドに渡します。

Steps has_many :questions, :through=>:instruction を考えると、Steps コントローラーが Step を作成した後に、隠しフィールドの値を Instructions モデルに挿入するにはどうすればよいですか?