問題タブ [has-one]

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 投票する
3 に答える
81971 参照

ruby-on-rails - Rails: レールで has_one 関連付けを使用してビルドを使用する

この例ではuser、 noを使用して をprofile作成し、後でprofileそのユーザー用に を作成します。関連付けを使用してビルドを使用しようとしましたhas_oneが、失敗しました。これが機能していることを確認する唯一の方法は、を使用することhas_manyです。にはuser最大で 1 つしかないはずprofileです。

私はこれを試してきました。私は持っている:

しかし、私がするとき:

エラーが発生します:

レールに0または1の関連付けを持つ方法はありますか?

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

orm - CakePHP の 2 つのモデル間で多数の関連付けと 1 つの関連付けを同時に定義する方法は?

CakePHP フレームワーク内で、私が長い間問題を抱えていたことの 1 つは、2 つのモデル間の同時hasOneおよびhasMany関係を定義することです。例えば:

BlogEntry hasMany Comment
BlogEntry hasOne MostRecentComment(最新のフィールドのMostRecentCommentはどこですか)Commentcreated

BlogEntry モデル プロパティでこれらの関係を定義するのは問題があります。CakePHP の ORM は has-one 関係を として実装しているINNER JOINため、複数の Comment があるとすぐに、BlogEntry::find('all')呼び出しは BlogEntry ごとに複数の結果を返します。

過去にいくつかの方法でこれらの状況を回避してきました。

  1. モデル コールバックを使用して (場合によっては、コントローラーやビューでも!)、MostRecentComment を次のようにシミュレートしまし
    $this->data['MostRecentComment'] = $this->data['Comment'][0];
    Comment.created。また、MostRecentComment フィールドでソートする Cake の組み込みのページネーション機能もありません (たとえば、BlogEntry の結果をMostRecentComment.created.

  2. 追加の外部キーの維持、BlogEntry.most_recent_comment_id. これは維持するのが面倒で、Cake の ORM を壊しBlogEntry belongsTo MostRecentCommentます。それは機能しますが、見た目が...間違っています。

これらの解決策には多くの要望が残されていたので、先日この問題に腰を下ろし、より良い解決策に取り組みました。私は最終的な解決策を以下に投稿しましたが、これまでずっと私を逃れてきた驚くほど単純な解決策があることを発見すると、わくわくします (そしておそらく少し悔やまれます)。または、私の基準を満たす他のソリューション:

  • レベルで MostRecentComment フィールドで並べ替えることができる必要がありModel::findます (つまり、結果のメッセージだけではありません)。
  • commentsまたはblog_entriesテーブルにフィールドを追加する必要はありません。
  • CakePHP ORM の「精神」を尊重する必要があります。

(この質問のタイトルが可能な限り簡潔/有益であるかどうかもわかりません。)

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

ruby-on-rails - Rails モデルの関係: 1 つだけでなく、多数に属しています

Modela と Modelb の 2 つのモデルがあります。

Modela は 1 つの Modelb しか所有できませんが、Modelb は多くの Modela の一部になることができます。

私が今持っているのは

私が行っていた :foreign_key の全体についてはよくわかりませんが、中断したときの場所でした。Modelb を多くの Modela の一部にしようとしているので、Modelb テーブルに modela_id フィールドを追加したくありません。

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

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

mysql - Ruby on Rails has_one モデルが ID 列を提供しない

多くのサーバーで問題なく実行されるレガシーレール(バージョン1.2.3)アプリがあります(ローカル環境は言うまでもありません)。ただし、最新のサーバーにデプロイすると、ActiveRecord::StatementInvalid: Mysql::Error: #23000Column 'video_id' cannot be nullエラーが発生します。

以下は、単純化されたモデル/関係です。

以下は、失敗した関係の Rails コンソールのトランスクリプトです。

ActiveRecord が ID を明確に認識しているのに ID を送信しないことに遭遇した人はいますか?

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

php - CakePHPには1つの非効率性がありますか?

私はCakePHPのWebサイトで例を見ていました。特に、モデルのリンクに使用されるhasOneです。 http://book.cakephp.org/view/78/Associations-Linking-Models-Together

私の質問はこれです、CakePHPはhasOneリンケージを使用するモデルで返されるデータの配列構造を構築するために2つのクエリを使用していますか?

CakePHPから取得:// $ this-> User-> find()呼び出しの結果のサンプル。

これがすべて理にかなっていることを願っています。

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

ruby-on-rails - has_one更新の問題

ユーザーとアカウントの2つのモデルがあります。各ユーザーは1つのアカウントを持つことができます。

ユーザーのアカウントの作成は正常に機能します。私の問題は、アカウントを更新しようとすると、以前のアカウントuser_idが無効になり、user_idを使用して新しいアカウント行が作成されることです。私はこれが起こらないようにしたい。アカウントの変更で既存の行を更新したいと思います。どうすればよいですか?

ありがとう。

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

cakephp - CakePHP:hasOneとHABTMを使用したsaveAll

1つのフォーム内に保存する必要がある2つのモデルを設定しています。ユーザーが「/deliveries/ add /」フォームを使用する場合、新しい配信を保存し、その配信に添付されている新しいライセンスも保存するために必要です。これはhasOneの関係です。

また、同じフォームで、ライセンスに含まれる製品と製品オプションを選択する必要があります。

私が遭遇している問題は、CakePHPが私のライセンス/製品とライセンス/ ProductOptionsの関係がHABTMであることを検出せず、フォームヘルパーが複数選択ドロップダウンではなく単一選択ドロップダウンしか表示しないことです。フォームヘルパーで強制的に倍数にしたとしても、データは保存されず、編集フォームに正しく入力されません(製品オプションの正しいラベルが表示されますが)。これは、私の主な節約モデルからそれほど離れた関係にあることと関係があるのではないかと思います。

以下に関連するコードを投稿しました。私のためにこれを見てくれてありがとう!

配信モデルは次のようになります。

ライセンスモデルは次のようになります。

deliveryies_controllerは次のようになります。

views / deliverys/add.ctpは次のようになります。

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

ruby-on-rails - Ruby on Rails - 関係を持つエンティティを作成する

私はレールが初めてなので、よろしくお願いします。

私は「rolodex」タイプのアプリケーションを構築しています。この質問は、複数の関係エンティティと同時にエンティティを作成するための最良の方法に関するものです。

(不自然な)例:私のアプリケーションにはPerson、どのhas_one Contact_Infoモデルのモデルがありますか。このcreate.html.erbページでPersonは、アプリケーションのユーザーが個人と contact_info を同時に作成することは理にかなっています。

人の作成ビュー/コントローラーに直接連絡先を作成するための詳細を含めることは正しくないようです。これを処理するレールの方法は何ですか?

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

ruby-on-rails - RoR で、A が B を 1 つ持っていると言った場合、A が B を 1 つ持つことは必須ですか?

A が 1 つの B を持つように関係をセットアップする必要がありますが、A が B を持たないエントリがいくつか存在します。これは可能ですか? そうでない場合、どうすればこれを行うことができますか?

読んでくれてありがとう。

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

ruby-on-rails - ruby on rails で has_one か belongs_to を使うべきですか?

Statusユーザー定義のセットアップの後、比較的静的なモデルが必要です (また、ユーザーによってステータスの値が異なる場合があります) 。

ステータスは、 や など、さまざまなモデルに適用できContactますEvent

そのため、によって返されるステータスはcontact.status異なりますevent.status

contactsステータス テーブルが異なるタイプ (と)を持つようにアプリを設計したいと考えていますevents

これに適した戦略とフォーマットは何ですか?

モデルで宣言:has_one Statusして、テーブルに格納することを考えています。と同上。Contact:status_id:contactsEvent

:statusesテーブルには、ステータス値、タイプ、および日付が含まれます。

これは意味がありますか?より良いアプローチを提案できますか?