問題タブ [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.
elixir - Phoenixフレームワークで関連付けとネストされたフォームを処理するには?
Phoenixフレームワークで関連付けとネストされたフォームを処理する方法は何ですか? ネストされた属性を持つフォームを作成するにはどうすればよいでしょうか? コントローラーとモデルでそれをどのように処理しますか?
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)
) 存在をチェックするだけです。私は何か間違ったことをしたか、ドキュメントのステートメントを誤解したことを除外していません。
誰かがすでにこれに出くわしましたか?
更新: 完全を期すために、移行は次のとおりです。
elixir - Elixir と Ecto で日付を比較する方法
データベースの列から取得したインスタンスがありEcto.DateTime
、この日付が過去 5 分を超えているかどうかを確認する必要があります。
それを行う最善の方法は何ですか?
より明確にするために、これがルビーで必要なものです->
elixir - Ecto で通常の検証エラーとデータベース固有の検証エラーを同時に表示する
メールとパスワードのフィールドと 2 つの検証があるフォームがあるとします。メールは一意である必要があり、パスワードは 8 文字未満であってはなりません。
Repo.Insert
またはそのような他の方法を使用しているときRepo.update
、最初にデータベースとは関係のない検証エラー (8 文字未満のパスワード) を取得し、パスワードが正しい場合にのみ、データベースにヒットし、電子メールが既に存在することを確認し、これをチェンジセット エラーに再度追加します。
したがって、ユーザーが既に存在する電子メールと短いパスワードを含むフォームを送信すると、後者に関するエラーのみが表示されます。通常のエラーとデータベース固有のエラーを同時に取得するために、常にデータベースにアクセスする方法はありますか? ?
json - 自己参照 Ecto モデルの JSON マップの構築
私はそのようなEctoモデルを持っています:
ご覧のとおり、Category モデルは subcategories アトムを介して自身を参照できます。
このモデルに関連付けられたビューは次のとおりです。
サブカテゴリにif条件を設定して、プリロードされていない場合に Poison をうまく使用できるようにしています。
最後に、このビューを呼び出す 2 つのコントローラー関数を次に示します。
関数は正常にshow
動作します:
ただし、showWithChildren
プリロードの使用方法により、関数は 2 レベルのネストに制限されています。
たとえば、上記のカテゴリ アイテム 11 にもサブカテゴリがありますが、それらにアクセスできません。これらのサブカテゴリはサブカテゴリ自体を持つこともできるため、階層の潜在的な深さはnです。
再帰的な魔法が必要であることは承知していますが、関数型プログラミングと Elixir の両方に慣れていないため、頭を悩ませることはできません。どんな助けでも大歓迎です。
elixir - unique_constraint Ecto の設定
メールフィールドを持つユーザーモデルがあります。今、私はそれをユニークにしたいので、ドキュメントに従って、適用する必要があります:
また、移行で一意のインデックスを定義する必要があります。
問題は、いくつかのフィールドを追加しながら移行でこれを定義しようとしたときに機能せず、これで移行を定義しようとしているだけcreate unique_index(:users, [:email])
でエラーが発生することです:
私は何を間違っていますか?