問題タブ [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 投票する
2 に答える
7999 参照

elixir - Phoenixフレームワークで関連付けとネストされたフォームを処理するには?

Phoenixフレームワークで関連付けとネストされたフォームを処理する方法は何ですか? ネストされた属性を持つフォームを作成するにはどうすればよいでしょうか? コントローラーとモデルでそれをどのように処理しますか?

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

elixir - Elixir Ecto:外部キー制約を検証する方法は?

私は Elixir と Phoenix Web フレームワークで遊んでいますが、今は外部キー制約を検証しようとして立ち往生しています。したがって、コメントの多いPostモデルが与えられた場合、次のようにモデルを記述しました。Comment

およびその単体テスト:

http://hexdocs.pm/ecto/Ecto.Changeset.html#foreign_key_constraint/3によると:

外部キー制約は、関連付けられたモデルが存在するかどうかをデータベースに依存してチェックすることによって機能します。これは、親もデータベースに存在する場合にのみ子が作成されることを保証するのに役立ちます。

私が書いたコードが機能することを期待していましたが、代わりに ( で定義されているように@required_fields ~w(body post_id)) 存在をチェックするだけです。私は何か間違ったことをしたか、ドキュメントのステートメントを誤解したことを除外していません。

誰かがすでにこれに出くわしましたか?

更新: 完全を期すために、移行は次のとおりです。

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

elixir - Elixir と Ecto で日付を比較する方法

データベースの列から取得したインスタンスがありEcto.DateTime、この日付が過去 5 分を超えているかどうかを確認する必要があります。

それを行う最善の方法は何ですか?

より明確にするために、これがルビーで必要なものです->

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

elixir - Ecto で通常の検証エラーとデータベース固有の検証エラーを同時に表示する

メールとパスワードのフィールドと 2 つの検証があるフォームがあるとします。メールは一意である必要があり、パスワードは 8 文字未満であってはなりません。

Repo.Insertまたはそのような他の方法を使用しているときRepo.update、最初にデータベースとは関係のない検証エラー (8 文字未満のパスワード) を取得し、パスワードが正しい場合にのみ、データベースにヒットし、電子メールが既に存在することを確認し、これをチェンジセット エラーに再度追加します。

したがって、ユーザーが既に存在する電子メールと短いパスワードを含むフォームを送信すると、後者に関するエラーのみが表示されます。通常のエラーとデータベース固有のエラーを同時に取得するために、常にデータベースにアクセスする方法はありますか? ?

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

json - 自己参照 Ecto モデルの JSON マップの構築

私はそのようなEctoモデルを持っています:

ご覧のとおり、Category モデルは subcategories アトムを介して自身を参照できます。

このモデルに関連付けられたビューは次のとおりです。

サブカテゴリにif条件を設定して、プリロードされていない場合に Poison をうまく使用できるようにしています。

最後に、このビューを呼び出す 2 つのコントローラー関数を次に示します。

関数は正常にshow動作します:

ただし、showWithChildrenプリロードの使用方法により、関数は 2 レベルのネストに制限されています。

たとえば、上記のカテゴリ アイテム 11 にもサブカテゴリがありますが、それらにアクセスできません。これらのサブカテゴリはサブカテゴリ自体を持つこともできるため、階層の潜在的な深さはnです。

再帰的な魔法が必要であることは承知していますが、関数型プログラミングと Elixir の両方に慣れていないため、頭を悩ませることはできません。どんな助けでも大歓迎です。

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

elixir - unique_constraint Ecto の設定

メールフィールドを持つユーザーモデルがあります。今、私はそれをユニークにしたいので、ドキュメントに従って、適用する必要があります:

また、移行で一意のインデックスを定義する必要があります。

問題は、いくつかのフィールドを追加しながら移行でこれを定義しようとしたときに機能せず、これで移行を定義しようとしているだけcreate unique_index(:users, [:email])でエラーが発生することです:

私は何を間違っていますか?