問題タブ [self-reference]

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

c# - 連鎖メソッド呼び出しの自己参照オブジェクト

同じメソッドの引数で、チェーンされたメソッドのオブジェクトをどのように参照しますか。次のように文字列をトリム/サブストリング化するチェーンメソッド呼び出しがいくつかあるとします。

問題は、文字列の長さが不明で元の文字列の長さと異なるため、最後の呼び出しのようにサブ文字列(インデックスと長さが文字列自体に依存する可能性があるサブ文字列)をどのように行うかです。

ありがとう!

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

entity-framework - EF STE と自己参照テーブルの問題

これは私の最初の投稿です。すべてがうまくいくことを願っています。

ここに私の問題があります: データベースにUserTypesというテーブルがあります。それは持っています:

  1. ID;
  2. IsPrivate;
  3. 親_ID;

該当するのは1枚目と3枚目です。UserTypes_Tという別のテーブルがあります。これには、言語固有のさまざまなタイプの情報が含まれています。フィールドは次のとおりです。

  1. 言語_ID;
  2. UserType_ID;
  3. 名前;

私が達成しようとしているのは、UserTypesテーブルから階層全体を読み込み、それを TreeView に表示することです (これは今のところ関係ありません)。次に、いくつかのユーザー タイプを選択して、個別の編集ボックス (名前) とコンボ ボックス (親) で編集できます。

データベースの変更を永続化しようとするまで、すべてが正常に機能します。EF は、これらのテーブルに対して 2 つのエンティティ クラスを生成してくれました。

ユーザータイプのクラスには次のものがあります。

  1. ID;
  2. IsPrivate;
  3. 親_ID;
  4. 自己参照のナビゲーション プロパティ (0..1)。
  5. 子要素のナビゲーション プロパティ。
  6. UserTypes_T テーブルの別のナビゲーション プロパティ (1..*)。

翻訳された情報のクラスには次のものがあります。

  1. UserType_ID;
  2. 言語_ID;
  3. 名前;
  4. UserTypes テーブルへのナビゲーション プロパティ (*..1)。
  5. Languages テーブルへのナビゲーション プロパティ (*..1)。

以下を使用して必要なデータを取得します。

私のWCF Webサービスで。問題なく新しいユーザー タイプを追加できますが、古いユーザー タイプを更新しようとすると、奇妙なことが起こります。

ルート要素 (Parent_ID==null) を更新すると、すべてが機能します。Parent_ID!=null の要素を更新すると、次のエラーが発生します。

オブジェクトのキー値が ObjectStateManager 内の別のオブジェクトと競合するため、AcceptChanges を続行できません。

私はインターネット全体を検索し、Diego B Vega (およびその他多数) のブログ投稿を読みましたが、私の問題は異なります。親ユーザー タイプを変更すると、実際にはナビゲーション プロパティではなく、Parent_ID プロパティが変更されます。問題を回避するために、生成されたナビゲーション プロパティではなく、常に ID を使用するようにしています。

私は少し調査を行い、取得したオブジェクトグラフが何であるかを確認しようとしましたが、重複するエンティティがたくさんあることがわかりました:

ルート要素には、その子要素のリストがありました。各子要素には、ルートまたはその親などへの後方参照がありました。想像できるでしょう。ID を使用して必要なデータを取得/設定したため、これらのナビゲーション プロパティを使用していなかったので、それらをモデルから削除しました。具体的には、 UserTypesエンティティ クラスからポイント45を削除しました。次に、各要素を 1 回だけ含むオブジェクト グラフを作成しました。新しいアップデートを試しましたが、同じ問題がありました:

ルート要素は正常に更新されましたが、いくつかの親を持つ要素が同じ例外をスローしました。

UserTypes_Tエンティティ クラスに、ユーザー タイプを指すナビゲーション プロパティがあることがわかったので、それも削除しました。その後、このエラーは消えました。オブジェクト グラフ内のすべてのアイテムは一意でした。しかし、問題は残っていました - ルート要素を問題なく更新できましたが、(除外なしで) 子を更新しようとすると、生成された Model.Context.Extensions クラスで null 参照例外が発生しました:

名前 ( UserTypes_Tにある) のみを更新しようとしましたが、エラーは同じです。

私はアイデアがなく、この問題を 8 時間解決しようとしてきました。誰かが私にアイデアを提供したり、経験を共有したりできれば幸いです。

PS:

子オブジェクトの更新に成功した唯一の方法は、次のコードを使用してデータを取得することでした。

ここで、UserType1はナビゲーション プロパティで、親ユーザー タイプを指し、UserTypes1はナビゲーション プロパティで、子要素のリストを保持します。ここでの問題は、EF がオブジェクトを「修正」し、Parent_IDnullに変更することでした。もう一度設定すると、EFもUserTypes1を設定します...この動作を停止する方法はありますか?

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

sql - 双方向の自己参照関連に関するクラス メソッドの問題

ユーザー ('current_user') が他の 2 人のユーザー ('user1' と 'user2') 間の互換性を評価するアプリを作成しようとしています。互換性を肯定的または否定的に評価できます。2 人のユーザーを「互換性がある」と評価すると、同じクラスの 2 つのリソース (双方向性の場合は「positive_connection」と「inverse_positive_connection」) が作成され、それらを「互換性がない」と評価すると、2 つのリソース (「negative_connection」) も作成されます。 ' および 'inverse_negative_connection')。したがって、positive_connection、negative_connection、およびユーザーのモデルがあります。

各評価リソースは、それを作成したユーザーだけでなく、それによって接続されたユーザーにも属しています。肯定的な評価と否定的な評価の両方を持つことが重要です。

これは私の問題です: すべてのユーザー ( @user) ページで、次の個別のリストを表示したい:

  1. であるユーザーoverall_positively_connected_to(@user)(すなわちpositive_connections.count > negative_ratings.count)、および

  2. であるユーザーoverall_negatively_connected_to(@user)(つまりnegative_connections.count > positive_ratings.count)。


私ができないように見えるのは、ネットレートが「互換性がある」または「互換性がない」ユーザーだけを引き出すクラスメソッドを書くことです

Michael Hartl の rails チュートリアル (私はまったくの初心者です) を読んで、User モデルに次のようなものを書く必要があると思います。


編集

SQL クエリの知識がまったくない状態から始めて、@user に (それぞれ) 否定的および肯定的に接続されているユーザーを見つけるための次の 2 つのクラス メソッドを作成しました。


しかし、それはあまり役に立ちません。私が必要としているのは、 users を取得するメソッドですoverall_positively_connected_to(user)。メソッドには2つの結合が含まれ、次のようになると思います。


しかし、ここで私は完全に行き詰まります。明らかに正しくありません。私はどこにもそのような他の例を見つけることができません...

SQLクエリに関しては手がかりがないので、これに関するどんな助けも素晴らしいでしょう。さらにコードが必要な場合はお知らせください。前もって感謝します!

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

ruby-on-rails - コントローラーのカウント関係での自己参照検索

ユーザーの「表示」ページにこれらを表示するために、ユーザーに自己参照的に関連する一連のレコードを引き出すのに本当に苦労しています。

アイデアは次のとおりです。

ユーザー ( ) は、他の 2 人のユーザー (および)current_user間の互換性を評価します。互換性を肯定的または否定的に評価できます。2 人のユーザーを「互換性がある」と評価すると、user_a と user_b の間に が作成され、「互換性がない」と評価すると. したがって、positive_connection、negative_connection、およびユーザーのモデルがあります。user_auser_bpositive_connectionnegative_connection

ここで、あるユーザーのみを表示する必要がありますoverall_positively_connected_to(@user)(つまり、 where positive_connections_to(@user).count > negative_connections_to(@user).count).

これは私がしなければならないところですが、それ以上先に進むことはできません:

ユーザーモデル:

コントローラ

コントローラーのコードは明らかに間違っていますが、これを行うにはどうすればよいですか? 私はレール(およびSQL)にまったく慣れていないので、素朴なことをしたかもしれません。

どんな助けでも素晴らしいでしょう。

0 投票する
9 に答える
177468 参照

excel - ワークシート関数のセル、列、行の自己参照

Excel のワークシート関数で、現在のセル、列、または行をどのように自己参照しますか?

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

haskell - Haskell 関数の自己参照

私は Haskell を学んでいますが、Haskell Wikiの次の式に は本当に戸惑いました。

なぜこれが機能するのか、私にはよくわかりません。

標準のカリー化ロジックを適用する(zipWith (+))と、引数としてリストを受け取る関数が返され、別のリストを引数として受け取る別の関数が返され、リスト ( zipWith::(a -> b -> c) -> [a] -> [b] -> [c]) が返されます。したがって、fibsは (まだ評価されていない) リストへの参照(tail fibs)であり、同じ (未評価の) リストの末尾です。( ) を評価しようとするとtake 10 fibs、最初の 2 つの要素が と にバインドされ0ます1。つまりfibs==[0,1,?,?...]、 と(tail fibs)==[1,?,?,?]. 最初の追加が完了すると、 にfibsなり[0,1,0+1,?,..]ます。同様に、2 番目の加算の後、次のようになります。[0,1,0+1,1+(0+1),?,?..]

  • 私の論理は正しいですか?
  • これを説明する簡単な方法はありますか?(Haskell コンパイラがこのコードで何をするかを知っている人からの洞察はありますか?) (リンクと参照は大歓迎です)
  • このタイプのコードは、遅延評価のためにのみ機能するというのは本当ですか?
  • を行うと、どのような評価が行われますfibs !! 4か?
  • このコードは、zipWith が要素を最初から最後まで処理することを前提としていますか? (そうすべきではないと思いますが、理由がわかりません)

EDIT2:上記の質問があり、ここでよく答えられていることがわかりました。誰かの時間を無駄にしてしまい申し訳ありません。

編集: これは理解するのがより難しいケースです (ソース: Project Euler forums ):

ここでall (\y -> x mod y /= 0)... x を参照しても無限再帰が発生しないことに注意してください。

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

entity-framework - Entity Framework 4.1 Code First 自己参照 1 対多および多対多の関連付け

好きなユーザーのコレクションを持つことができるユーザーがいます...

別のユーザーは、好きなユーザーのコレクションを持つことができます....

ユーザー A がユーザー B を好きで、ユーザー B がユーザー A を好きなら、彼らはたむろするようになります。連絡先情報をお互いに送信する必要があります。このようなモデルを Entity Framework Code First で表現するにはどうすればよいでしょうか?

このモデルは正しいですか?私はこれを機能させることができません。

私は別の方法を試しましたが、それもうまくいきません...

ユーザーのコレクションをユーザーテーブルに追加しようとしました。

例:

ユーザーと好きな人を追加しようとすると、このエラーが発生します。

関係「UserLike_LikeUser」のロール「UserLike_LikeUser_Target」に対する競合する変更が検出されました。

そのようなモデルを表現する最良の方法は何ですか?

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

ruby-on-rails - Rails Self Reference has_many :through - 何が間違っているのかわかりませんが、正しくありません :)

この素晴らしいビデオ ( http://railscasts.com/episodes/163-self-referential-association ) で説明されているように、私は自己参照関係を設定しようとしていますが、ほとんどは機能していますが、完全には機能していません。

私はこれらのエンティティを持っています: メンターまたはメンティーのいずれかになることができるユーザー。mentor_id (user.id)、mentee_id (user.id)、および status_id を持つ一致。ステータスは単純なルックアップ テーブルです。

私の User モデルは次のようになります。

私の Status モデルは次のようになります。

私のマッチモデルは次のようになります。

user.mentorsを入れるとSQLite3::SQLException: no such column: matches.user_id: SELECT "users".* FROM "users" INNER JOIN "matches" ON "users".id = "matches".mentor_id WHERE ( (「一致」.user_id = 1))

簡単に言えば、私はuser.matches.find(1).status.idを実行したいと思っていました..私が間違っていることについて何か考えはありますか?

前もって感謝します。ジョン

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

mysql - Propel ORM を使用して Symfony で自己参照テーブルを構築する方法

Propel ORM を使用して symfony プロジェクトの既存のデータベースからモデルを構築しようとするとエラーが発生します。

エラーは次のとおりです。

build-propel.xml:474:20: 外部キー a_table_on_my_schema_FK_1 によって表現される 1:1 の関係は、両方向で定義されます。Propel は現在これをサポートしていません (両方の外部キー制約が必要な場合は、カスタム SQL ファイルでこの制約を追加することを検討してください)。

schema.yml ファイルは非常に広範囲ですが、エラーの原因となったテーブルの説明 (最初のテーブルが正しく作成されていない) は次のとおりです。

このエラーは、自己参照テーブルが原因だと思います。

多くの要素間にジェラリックな関係を実装する必要があるため、この実装はそれを行うための良い方法です。しかし、建設時にこの問題が発生します。

手がかりを教えてもらえますか?誰かにこのエラーがありましたか?あなたならどうしますか?

ありがとうございました!!:D

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

ruby-on-rails-3 - Rails: 単一のフォームから自己参照モデルの複数のレコードを作成する

私は自己参照販売モデルを持っています。販売オブジェクトは、「独立した」製品販売、製品セットの販売、またはセット内の製品の販売を表すことができます。

set_sale_id は、セット販売の親レコードを参照します。

次のような 1 つのフォームから複数の製品とセット販売を送信したいと考えています。

問題は、ネストされたレコードに <%= f.fields_for ... %> を使用して最適な方法で行う方法ですか?

コントローラー側で送信されたレコードを処理する方法は?