問題タブ [belongs-to]
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: belongs_to を介してレコードを保存し、外部キーを設定する
このコードを記述するより良い方法はありますか? それは私にぴったりではありません.私はすでに知っておくべき本当に「レールのような」何かがあるように感じます:
レコードを作成した後、選択した親テンプレートを取得し、parent_in_use
それに基づいてレコードを作成しています。このようにしてテンプレートを変更することができ、in_use レコードは私のオブジェクトと共に永遠に存続します。ParentInUse クラスと ParentTemplate クラスはどちらも、STI を使用して Parent から継承します。
これは十分に簡単であると確信していますが、その方法がわかりません。基本的には、レコードを作成して 1 回の操作で割り当てたいと考えています。
ruby-on-rails - 2つの単一テーブル継承モデル間の関係
私は次の2つのモデルを持っています
と
会社であろうと個人であろうと、1つの連絡先に多くのContactFields(住所と電話番号)を持たせたいのですが...では、それらの連絡先が多く、所属しているのはどこに置くべきですか?ありがとう
ruby-on-rails - ActiveRecord の has_one 関係が特定のケースで返されない
それぞれが入れ子になっている 3 つのモデルがあるとします。最上位オブジェクトを作成し、他の子オブジェクトを build_* にすると、元のインスタンスの save() 前後のリレーションシップを通じてすべての子オブジェクトを取得できます。ただし、 find(:id) の後に第 2 レベルのネストされたオブジェクトを取得しようとすると、元の親は失敗します。ただし、第 1 レベルのネストされたオブジェクトは取得できます。これは通常コントローラーで発生しますが、以下のコンソール出力で説明します。
私は何を見落としていますか?
前もって感謝します!
~jpv
以下のすべてのボイラープレートのもの:
適切な外部キーは、「belongs_to」クラスのそれぞれにあります。
php - Cakephp のオプションの belongsTo 関係
CakePHP アプリケーションに単純なカテゴリ モデルがあります。サブカテゴリを追加したいのですが、parent_id 列を追加するだけでこれを行うことができます。
parent_id は、同じカテゴリ モデルを参照する属している関係です。
管理者の足場を生成すると、ドロップダウンが表示されます (正しい!) が、このドロップダウンに NULL オプションを含めたい (トップレベルのカテゴリの場合)。
これは可能ですか?もしそうなら、どのように..
(注: 現在、ツリーの動作には関心がありません)
zend-framework - Element、サブフォーム、belongsToを使用したZendFrameworkの問題
Zend_Formと、サブ配列に配置する必要のある要素を使用して、まだ髪を引っ張っています。フォーム->populate()は、belongsTo()を使用して親配列に設定されたサブフォーム内の要素を操作する場合は機能しません-実際にはZend_Form-> setDefaults()のバグだと思いますが、見たかっただけです他の誰かがa)同じ問題を抱えていてb)それを回避することができた場合...
ruby-on-rails - Ruby on Rails で相互の belongs_to を設定する
ウィキを作成しています。各記事には多くのリビジョンがあり、記事は単一の現在のリビジョンに属します。したがって、データベースでは、記事はリビジョンの ID への参照を 1 つ持ち、各リビジョンは所属する記事への参照を 1 つ持ちます。先に進む前に、これは物事を行うための正気な方法のように思えますか? それはかなり非正統的ですが、論理的だと思います。同様の状況にある他の人がどのように設定したかはわかりません.
問題は、このタイプの相互の belongs_to 関係が、モデルを作成するときに Rails を実際に混乱させているように見えることです。私が最初に記事を作成するとき、それに合わせて最初のリビジョンも作成したいと思います。
before_create メソッドを追加して、次のようにしました。
しかし、これは保存時にスタック オーバーフローを引き起こします。Rails はループ内で最初にアーティクルを保存しようとするようです。論文。
私が物事を分割し、それらを同時に作成しない場合 (ただし、トランザクション内で)、最初に作成されたものは参照セットを取得しません。例えば:
保存に失敗したため、リビジョンの article_id が null のままになります。
update と save で変数を初期化するだけで、after_create メソッドを呼び出すことでこれを回避できると思いますが、これは巨大な混乱に変わりつつあり、Rails では通常、何か間違ったことをしていることを意味するように感じます。 -頭がおかしい。
誰か助けてもらえますか、それとも変更を保存する after_create メソッドを少し作成するのに行き詰まっていますか?
ruby-on-rails - ActiveRecord :include は、foreign_key を使用した belongs_to に対して機能しません
私はこのように設定された2つのモデルを持っています:
しかし、私がするたびに
発行される sql は常に ID を探します (そしてゼロを使用します):
私は何か間違ったことをしていますか、それとも との関係での使用foreign_keys
に問題がありますか?belongs_to
include
ruby-on-rails - Rails:モデルAの場合has_manyBbelongs_to C return Aここで、BはCに属し、Bは指定されたAに対して最近作成されましたか?
私には3つのモデルA、B、CがありA has_many B
ます。B belongs to C
、およびB has a created_on timestamp
。Chas_manyAからB。
AがCに属するBを持ち、BがそのAに対して最後に作成されたBである すべてのAを返したい。
メソッドループでこれを行うことができます。これはnamed_scopesだけで実行できますか?それとも他のエレガントで効率的な方法ですか?
実世界(TM)の要求に従って、例A、B、およびCは、たとえば、ペット(A)、ペット名(B)、および名前(C)として想像できます。PetsNamesは特定の時間にペットに付けられ、任意の名前を多くのペットに付けることができます。どのペットも多くの名前を持つことができます(:through関係)。特定の名前について、その名前がそのペットに対して最後に作成されたPetNameであるすべてのペットが必要です。呼び出しは次のようになります@name.pets.most_recently_named_as
ruby-on-rails - Rails ActiveRecord の関連付けが一貫して更新されない
理解できない Rails 2.3.5 ActiveRecord の動作に遭遇しました。オブジェクトのアソシエーション ID が一貫性のない方法で更新される可能性があるようです。
これは、次の例で最もよく説明されています。
Post
string 属性'title'
を持つComment
モデルとstring 属性を持つモデルを作成します'content'
。
協会は次のとおりです。
シナリオ #1: 次のコードPost
では、関連付けられた を使用して 1 つを作成し、1 つComment
目Post
をfind
'ing して 2 つ目を作成し、1 つ目に 2 つ目Comment
を追加して、明示的な割り当てなしで2 つ目が関連付けられていることPost
を発見します。Post
Comment
シナリオ #2: 上記のコマンドを再度実行しますが、今回は結果に影響を与えない追加のコマンドを 1 つ挿入します。追加のコマンドは、作成後、に追加する前にpost2.comments
発生するものです。comment2
comment2
post1
シナリオ 1 では 2 つのコメントがあったのに対し、このシナリオでは1 つのコメントしか関連付けられていないことに注意してください。post2
大きな疑問:新規をpost2.comments
追加する前に実行して、どのコメントが に関連付けられているかに違いがあるのはなぜですか?Comment
post1
post2
ruby-on-rails - Railsで「両側」の多対多の関係を作成する方法は?
写真サイトがあるとします。作成者は、他の作成者からの更新を受け取るために購読できます。明らかに、著者 A が著者 B を購読しているからといって、B が A を購読しているとは限りません。したがって、モデルを構築します。
このように使用できます
- some_author.subscribed_by_author -- some_author が購読している著者のリスト。
- どのサブスクリプションでも、両端 (誰が誰にサブスクライブしているか) を知ることができます。
しかし問題は、Rails のみを使用して (プレーン SQL を使用せずに) ある作成者を購読している人のリストを取得する方法です。つまり、「some_author を購読しているのは誰ですか?」
質問: Rails には、関係を両側で機能させる機能、つまり、書くだけでsome_author.subscribed_BY_author
なく持つ機能はありsome_author_subscribed_TO_author
ますか? あるとすれば、それは何ですか?
PS明白な解決策は
- データベースの設計を変更し、「方向」という名前の列を追加します
- サブスクリプションが作成されるたびに 2 つのレコードを作成する
オーサーモデルに追加
has_many :subscribed_BY_author, :through => :subscriptions, :source => :subscribed_to, :conditions => "direction = 'by'"
has_many :subscribed_TO_author, :through => :subscriptions, :source => :subscribed_to, :conditions => "direction = 'to'"
しかし、データベースの設計を変更せずに解決策があるのだろうか。