問題タブ [ecto]

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

postgresql - Phoenix の Ecto モデルで PostgreSQL ハッシュを取得するには?

Ecto モデルで PostgreSQL-Hash タイプのフィールドを定義したいのですが、その方法がわかりません。このトピックに関する明示的なガイドは見つかりませんでした。ここに隠されていると思います: http://hexdocs.pm/ecto/Ecto.Schema.html

EctoでPostgreSQL-Hashフィールドを行うための明確なガイドはありますか?

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

join - Elixir Ecto : 複数の結合と再利用可能/構成可能なクエリ

Ecto では、次のように再利用可能/構成可能なクエリを作成できます。

このブログ投稿でその他の例を参照してください。

ただし、複数の結合を使用すると問題が発生します。

次のようなスキーマがあるとします。

  • AModel は BModel に属します
  • BModel は CModel に属します
  • CModel は DModel に属します

この記事で提案されている解決策は、深い結合では実際には機能しません。

クエリ関数は、最初 (結合の場合は 2 番目) の引数としてバインディング テーブルを受け取ります。これには以前の結合が含まれており、悲しいことに結合順序がきついです。

この場合、anonymous関数は開始テーブルを対象としています。ただし、クエリの例では、AModel は 4 番目のバインディングです...

この順序の依存関係を取り除くためのアイデアやテクニックはありますか?

編集 :

ブログ主から返事が来ました。彼は、テーブル内の位置によってバインディングを処理するネイティブな方法は他にないと私に言いました。彼はまた、この事実を強調するこの記事を提供しました。

しかし、神のために、順序のみが重要な場合、 name を binding index に関連付ける名前付けマッピングをその上に作成できないのはなぜですか?

これは質問するには多すぎますか :p ?

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

elixir - ecto を使用した逆ポリモーフィック

現在の Ecto ドキュメントhttp://hexdocs.pm/ecto/Ecto.Schema.htmlは、多態性が と の両方に属することができるbelongs_to場合に、多態性関連のタイプを構築する方法のみを説明しています。しかし、反対方向はどうですか?CommentTaskPost

たとえば、 、、またはListingの 4 つのタイプのプロパティのいずれかを持つことができる があります。RoomApartmentVilaOffice

1 対 1 の関係を考えると、上記の例を考えるとrooms_listings、 、apartments_listingsvila_listingsおよびが存在する必要があることを意味しますoffice_listings。これは、 に関連付けられている他のすべてのテーブルの重複につながるため、不可能listingsです。

問題は、この種の関係をどのようにモデル化するかです。

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

elixir - フェニックスエリクサーのチェンジセットとは

changesetin モデルの理解に問題があります。それは何をしますか?1 つのモデルに複数の変更セットを含めることはできますか? たとえば、1 つは作成用、もう 1 つは更新用です。

フェニックスに来る他の人々を助けるために、誰かが簡単な方法で詳しく説明できますか.

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

elixir - 外部キー ID を挿入しない Ecto リレーション

Sup、私はEctoを学んでいて、関連付けられたレコードを別のテーブルに挿入しようとしています。レコードが挿入されていますが、外部キーフィールドが空であるため、ちょっとうまくいっています。

コード:

変更セットの検査

私が見ることができるのは、何らかの奇妙な理由で、親 ID を mastercat_id ではなくフィールド master_cat_id に割り当てていることです。

どんな助けでも大歓迎です。 https://github.com/Hajto/hangmanelixir

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

elixir - Poison Encode エンコーディング ネストされたモデル

すする、

ネストされた Ecto モデルをエンコードしようとしていますが、問題が発生しました。アンロードされたモデルをエンコードできないことに気付きました。残りをロードせずに1つの構造のみを選択する可能性があり、同時にツリー全体を選択する可能性が必要です。

メソッドを defimpl で使用しました。例:

これは構造全体で機能しますが、MasterCats のみを選択すると機能せず、このようなエラーが発生します。

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

elixir - phoenix elixirにプラグインルーターを追加する方法

ユーザー リソースの認証を作成し、正常に動作しますが、user_controller.ex から project_controller.ex への認証機能を使用したいと考えています。

認証プライベート関数をuser_controllerからproject_controllerにコピーすると、プロジェクトリソースで認証が機能しますが、すべてのコントローラーでこの認証関数を複製したくありません。このコードを乾燥させる最善の方法を知る必要があります。ルーターは認証プラグを追加するのに適した場所だと思いますが、どこにコードを追加すればよいかを知る必要があります。

router.ex

user_controller.ex

モデル/user.ex

コントローラー/auth.ex

コントローラー/project_controller.ex