問題タブ [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.
ruby-on-rails - Rails: レールで has_one 関連付けを使用してビルドを使用する
この例ではuser
、 noを使用して をprofile
作成し、後でprofile
そのユーザー用に を作成します。関連付けを使用してビルドを使用しようとしましたhas_one
が、失敗しました。これが機能していることを確認する唯一の方法は、を使用することhas_many
です。にはuser
最大で 1 つしかないはずprofile
です。
私はこれを試してきました。私は持っている:
しかし、私がするとき:
エラーが発生します:
レールに0または1の関連付けを持つ方法はありますか?
orm - CakePHP の 2 つのモデル間で多数の関連付けと 1 つの関連付けを同時に定義する方法は?
CakePHP フレームワーク内で、私が長い間問題を抱えていたことの 1 つは、2 つのモデル間の同時hasOne
およびhasMany
関係を定義することです。例えば:
BlogEntry hasMany Comment
BlogEntry hasOne MostRecentComment
(最新のフィールドのMostRecentComment
はどこですか)Comment
created
BlogEntry モデル プロパティでこれらの関係を定義するのは問題があります。CakePHP の ORM は has-one 関係を として実装しているINNER JOIN
ため、複数の Comment があるとすぐに、BlogEntry::find('all')
呼び出しは BlogEntry ごとに複数の結果を返します。
過去にいくつかの方法でこれらの状況を回避してきました。
モデル コールバックを使用して (場合によっては、コントローラーやビューでも!)、MostRecentComment を次のようにシミュレートしまし
$this->data['MostRecentComment'] = $this->data['Comment'][0];
たComment.created
。また、MostRecentComment フィールドでソートする Cake の組み込みのページネーション機能もありません (たとえば、BlogEntry の結果をMostRecentComment.created
.追加の外部キーの維持、
BlogEntry.most_recent_comment_id
. これは維持するのが面倒で、Cake の ORM を壊しBlogEntry belongsTo MostRecentComment
ます。それは機能しますが、見た目が...間違っています。
これらの解決策には多くの要望が残されていたので、先日この問題に腰を下ろし、より良い解決策に取り組みました。私は最終的な解決策を以下に投稿しましたが、これまでずっと私を逃れてきた驚くほど単純な解決策があることを発見すると、わくわくします (そしておそらく少し悔やまれます)。または、私の基準を満たす他のソリューション:
- レベルで MostRecentComment フィールドで並べ替えることができる必要があり
Model::find
ます (つまり、結果のメッセージだけではありません)。 comments
またはblog_entries
テーブルにフィールドを追加する必要はありません。- CakePHP ORM の「精神」を尊重する必要があります。
(この質問のタイトルが可能な限り簡潔/有益であるかどうかもわかりません。)
ruby-on-rails - Rails モデルの関係: 1 つだけでなく、多数に属しています
Modela と Modelb の 2 つのモデルがあります。
Modela は 1 つの Modelb しか所有できませんが、Modelb は多くの Modela の一部になることができます。
私が今持っているのは
私が行っていた :foreign_key の全体についてはよくわかりませんが、中断したときの場所でした。Modelb を多くの Modela の一部にしようとしているので、Modelb テーブルに modela_id フィールドを追加したくありません。
これを行う最善の方法は何ですか?
mysql - Ruby on Rails has_one モデルが ID 列を提供しない
多くのサーバーで問題なく実行されるレガシーレール(バージョン1.2.3)アプリがあります(ローカル環境は言うまでもありません)。ただし、最新のサーバーにデプロイすると、ActiveRecord::StatementInvalid: Mysql::Error: #23000Column 'video_id' cannot be null
エラーが発生します。
以下は、単純化されたモデル/関係です。
以下は、失敗した関係の Rails コンソールのトランスクリプトです。
ActiveRecord が ID を明確に認識しているのに ID を送信しないことに遭遇した人はいますか?
php - CakePHPには1つの非効率性がありますか?
私はCakePHPのWebサイトで例を見ていました。特に、モデルのリンクに使用されるhasOneです。 http://book.cakephp.org/view/78/Associations-Linking-Models-Together
私の質問はこれです、CakePHPはhasOneリンケージを使用するモデルで返されるデータの配列構造を構築するために2つのクエリを使用していますか?
CakePHPから取得:// $ this-> User-> find()呼び出しの結果のサンプル。
これがすべて理にかなっていることを願っています。
ruby-on-rails - has_one更新の問題
ユーザーとアカウントの2つのモデルがあります。各ユーザーは1つのアカウントを持つことができます。
ユーザーのアカウントの作成は正常に機能します。私の問題は、アカウントを更新しようとすると、以前のアカウントuser_idが無効になり、user_idを使用して新しいアカウント行が作成されることです。私はこれが起こらないようにしたい。アカウントの変更で既存の行を更新したいと思います。どうすればよいですか?
ありがとう。
cakephp - CakePHP:hasOneとHABTMを使用したsaveAll
1つのフォーム内に保存する必要がある2つのモデルを設定しています。ユーザーが「/deliveries/ add /」フォームを使用する場合、新しい配信を保存し、その配信に添付されている新しいライセンスも保存するために必要です。これはhasOneの関係です。
また、同じフォームで、ライセンスに含まれる製品と製品オプションを選択する必要があります。
私が遭遇している問題は、CakePHPが私のライセンス/製品とライセンス/ ProductOptionsの関係がHABTMであることを検出せず、フォームヘルパーが複数選択ドロップダウンではなく単一選択ドロップダウンしか表示しないことです。フォームヘルパーで強制的に倍数にしたとしても、データは保存されず、編集フォームに正しく入力されません(製品オプションの正しいラベルが表示されますが)。これは、私の主な節約モデルからそれほど離れた関係にあることと関係があるのではないかと思います。
以下に関連するコードを投稿しました。私のためにこれを見てくれてありがとう!
配信モデルは次のようになります。
ライセンスモデルは次のようになります。
deliveryies_controllerは次のようになります。
views / deliverys/add.ctpは次のようになります。
ruby-on-rails - Ruby on Rails - 関係を持つエンティティを作成する
私はレールが初めてなので、よろしくお願いします。
私は「rolodex」タイプのアプリケーションを構築しています。この質問は、複数の関係エンティティと同時にエンティティを作成するための最良の方法に関するものです。
(不自然な)例:私のアプリケーションにはPerson
、どのhas_one
Contact_Info
モデルのモデルがありますか。このcreate.html.erb
ページでPerson
は、アプリケーションのユーザーが個人と contact_info を同時に作成することは理にかなっています。
人の作成ビュー/コントローラーに直接連絡先を作成するための詳細を含めることは正しくないようです。これを処理するレールの方法は何ですか?
ruby-on-rails - RoR で、A が B を 1 つ持っていると言った場合、A が B を 1 つ持つことは必須ですか?
A が 1 つの B を持つように関係をセットアップする必要がありますが、A が B を持たないエントリがいくつか存在します。これは可能ですか? そうでない場合、どうすればこれを行うことができますか?
読んでくれてありがとう。
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
:contacts
Event
:statuses
テーブルには、ステータス値、タイプ、および日付が含まれます。
これは意味がありますか?より良いアプローチを提案できますか?