問題タブ [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 に答える
5076 参照

elixir - Phoenix アプリケーションの起動時にデータベースを事前設定する方法は?

私はこのスキーマを持っています:

アプリケーションの起動時に、いくつかの行が自動的に作成されて入力されるようにしたいと思います:title。たとえば、page1、page2、... を含むフィールドで 6 つのエントリを作成したいとします。

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

elixir - Phoenix でユーザー入力サーバー側を適切にサニタイズする方法

ユーザー入力のクライアント側をサニタイズする方法は知っていますが、サーバー側でも行います。それを行う適切な場所は を使用していることは知っていますが、これまでのところ、タグや SQL インジェクションなどの他の潜在的な有害なコンテンツに対してchangeset適切に行う方法の例を見つけることができません。<script></script>ユーザーが HTML コンテンツを変更してその HTML をデータベースに保存できるようにしたいので、標準の検証を使用できずraw、テンプレートに HTML を表示します。誰かが私に例を挙げてもらえますか?

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

erlang - プロダクションエリクサーが既存のアトムを見つけられない

既存のキー (Poison) を使用して入力をマップに解析するライブラリを使用しています。なんらかの理由で、本番環境ではキーが存在しないと見なされ、その理由がわかりません。新人ではない誰かが、何が起こっているのかを理解するのを喜んで手伝ってくれることを望んでいるいくつかの情報があります。

1:

IEX セッション (iex -S mix) を実行すると、問題なく :erlang.binary_to_existing_atom("first_name", :"utf8") を実行できます。しかし、本番環境では、代わりに

2:

:first_nameプロダクションの直前に実行できますが:erlang.binary_to_existing_atom、それまでにアトムが作成されているため、正常に動作します。しかし:first_name、ライブラリのメソッドに続いて実行することはできませんPoison.Parser.parse!(~s(#{body}), keys: :atoms!)。エラーがスローされるため、これは奇妙です。

3:

私は Heroku を使用していますが、それが重要かどうかはわかりません。アトムはEctoモデル内で定義されていますが、それが重要かどうかもわかりません。どんな助けでも大歓迎です-事前に感謝します!

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

postgresql - Ecto/Phoenix でデータベースから最新のエントリを選択する方法

データベースとクエリ(フロントエンドからのもの)から始めたばかりで、特定の を含むフィールドから最新のエントリを選択したいと思いtitleますPage1。私を助けることができる 2 つのフィールドがあることを知っています: 1) created_at- 最新のものだけを選択して注文できます。2)id-すべてのエントリが新しいを生成することを知っているidので、最大のものを取得できますid; 「標準」の編集コントローラーアクションに適用したい:

ですから、どちらの方法が優れているかを知り、クエリの例を見てみたいと思います。

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

elixir - ecto/phoenix/elixir の has_one に属していない

問題

私はfilesテーブルを持っていますが、1 対 1 の関連付けを作成する他の多くのテーブルusersavatarありpostsますphoto

可能な解決策

考えられる解決策は、テーブルを作成users_filesposts_filesて使用することhas_one :throughです。しかし、これは過剰に見えます。

理想的なソリューション

理想的な解決策は、このようなテーブルを定義することです

with:パラメータが含まれてhas_oneいるため、スキーマは次のようになります

そうすれば、belongs_toonを定義する必要はありませんfiles。同様のメカニズムはすでにありますか?フェニックスでこれに対処する標準的な方法は何ですか?

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

elixir - Ecto Model で非公開スキーマからテーブルを選択する

さまざまな Google 検索を行った後でも、PostgreSQL のデフォルトのパブリック スキーマにないテーブルを選択するという問題に頭を悩ませています。

ただし、モデル定義でPostgresのスキーマを参照しようとしましたが、うまくいきませんでした。ログを見ると、「引用」されている理由がわかります

スロー:

それがバグではないことは理解していますが、これを達成する方法を他に知りたいです。

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

elixir - ecto を使用してカスタム情報を保存する

ユーザーが PostgreSQL の JSONB レコード タイプを使用してカスタム フィールドを作成できる、フェニックスの Rails で最初に作成したアプリケーションを再実装しています。例として、次の (簡略化された表現) スキーマがあります。

クライアント

  • ID (整数)
  • クライアント タイプ ID (int)
  • 名前 (文字列)
  • 情報 (jsonb)

クライアントの種類

  • ID (整数)
  • 名前 (文字列)

カスタム フィールド定義

  • ID (整数)
  • クライアント タイプ ID (int)
  • キー (文字列)
  • ラベル(文字列)

Rails では、ActiveRecord が魔法のように JSONB をハッシュとの間で変換します。これにより、JSONB を使用してカスタム フィールドのスキーマレス セットを非常に簡単に格納できます。

たとえば、クライアントの種類ごとに異なるカスタム フィールドを定義できます。ユーザーに情報を表示するときに、定義をループしてキーを取得し、それを使用して JSONB ドキュメントからデータを取得します。

私は Ecto を使用してこれを達成する方法を見つけようとしていましたが、埋め込まれたスキーマを見る必要があるように見えます (ここで良い情報を見ました)。実行時にこれにカスタム量のフィールドを追加できますか?

これについてのアドバイスを探していました。これまでのところ、これは私が遭遇した唯一の実際の障害であり、ほとんどすぐには解決されません。

ありがとうございます。