問題タブ [default-scope]

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 に答える
729 参照

yii - Yii フレームワークのリセット defaultScope

Yii フレームワークでは、どうすれば無効にできdefaultScopeますか?

resetScope(false)andで試しましresetScope(true) たが、役に立ちませんでした。

どんな助けでも本当に感謝しています。

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

ruby-on-rails - client_side_validations gemでdefault_scopeをオーバーライドするには?

私はdefault_scope、スコープがcurrent_user.company. サインアップ ページで client_side_validations gem を使用しています。これは、テナント セットがないことを意味します。

一意性バリデーターが@user.emaildefault_scope で実行されると、検証が適切に実行されなくなり ( company_idnil であるため)、常に一意の結果のように見えます。

私のユーザーモデル:

このクエリは、電子メールを検証するときに実行されます。

ユーザー モデルからを削除するdefault_scopeと、正しい結果と適切な検証が得られます。

default_scopeこの gem が電子メールバリデーターを実行するときにオーバーライドする最も実用的な方法は何ですか?

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

ruby-on-rails - この default_scope が機能しないのはなぜですか?

notified: trueユーザーが論理的に削除されるように、デフォルトのスコープを設定しようとしています。notifiedブール値のデータ列です。

これは私が試したことです:

ただし、この方法では、ユーザーはどのスコープにも表示されません。つまり、すべてのユーザーは論理的に削除されたように見えnotified: falseますnotified: nil。スコープの何が問題になっていますか?

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

ruby-on-rails - デフォルトのスコープはレールで引数を取ることができますか?

現在のユーザーに応じてすべてのクエリをフィルター処理する既定のスコープを作成したいと考えています。現在のユーザーを引数として default_scope に渡すことは可能ですか? (これは通常のスコープで実行できることを知っています)そうでない場合、別の解決策は何ですか?

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

ruby-on-rails - has_many :through と default_scope での奇妙な動作

ユーザーと企業向けの基本的な has_many through: を取得しました。

次に、ユーザーCompanyMethodsに a を追加するこの lib があります。default_scope

したがって、 を呼び出すUser.find_by_email('michael@widgetworks.com')と、 によってスコープが設定されたユーザーのみが返されAuthorization.current_company_idsます。

SQLは次のとおりです。

多くの場合、これはすべてうまくいきます。しかし、ここからファンキーになり始めます。

別のオブジェクト、たとえば CreditCard が User を通過するアソシエーションを呼び出すとcompanies.id、子オブジェクトでスコープが呼び出されます。

生成される sql は次のとおりです。

credit_card.ordersSQL クエリが " companies. idIN (4)" を呼び出しreservationているため、エラーをスローしますuser

throughアソシエーションを使用する代わりにreservations、CreditCardという名前のメソッドを作成するだけで問題を回避できました。

これで問題はほぼ解決しますが、優れた解決策ではありません。

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

ruby-on-rails - ActiveRecord .exists?() と default_scope の奇妙さ

ユーザーをdefault_scope一連の企業に制限する User クラスがあります。

期待どおりに、またはUser.lastすべての作業と範囲を呼び出します。User.find_by_email('mhayes@widgetworks.com')User.find(55557)

呼び出すUser.exists?(id)と、奇妙なエラーがスローされます。

基本的に、私がこれを取得している場合、それcompaniesは のコラムではないと言ってUserいます。SQLをステートメントにコピーしても、where正しく評価されます。

と評価の順番があり、どういうわけか前に呼び出されていると思わせてdefault_scopeくれexists?ますdefault_scope

私が電話した場合:

動作します。そして、これがdefault_scopeが行っていることなので、default_scopeスコープが失敗していないことはわかっています。

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

ruby-on-rails - Devise ユーザーがデフォルトの範囲外にいるときにログインできるようにするにはどうすればよいですか?

認証にDevise 3.4を使用するRails 4アプリがあります。これは、ユーザーを禁止する機能でカスタマイズしました(単純なブール列users.banned、デフォルトのfalseを使用)。このUserモデルには、default_scope禁止されていないユーザーのみを返す もあります。

ここに問題があります - 禁止されたユーザーは、ログイン後に何もできなくても、ログインできるようにしたいのです (基本的に、「禁止されています」というページが表示されるだけです)。しかし、それはdefault_scopeDeviseをつまずかせているようです. ログインするか eg を呼び出すと、Devise はorauthenticate_user!のような基本的な ActiveRecord メソッドの 1 つを使用して現在のユーザーを見つけようとしますが、デフォルトのスコープ外にあるためできません。したがって、Devise はユーザーが存在しないと判断し、ログインに失敗します。findfind_by

Deviseにデフォルトのスコープを無視させるにはどうすればよいですか?