問題タブ [model-associations]

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 に答える
1363 参照

ruby-on-rails-3.1 - 基本的な関連付けで Rails Gem Active Admin を使用する方法

私は Rails を初めて使用し、最初のプロジェクトで Active Admin を使用して 2 つのネストされたオブジェクトを管理したいと考えていますが、フィルター (分かりにくいラベル) につまずいています。

ここに私の2つのモデルがあります:

次に、 app/admin/etablissements.rb に次のものがあります。

しかし、選択フィールドは次のようになります。

これらのオプション ラベルは明らかにユーザー フレンドリーではありません。:email フィールドまたはその他のカスタム フィールドを option-label として使用する方法についてのアイデアはありますか?

ご協力いただきありがとうございます

0 投票する
0 に答える
228 参照

ruby-on-rails-3.1 - テストによる Rails 3.1 Rspec の関連付け

ブランド (has_many :products) と製品 (belongs_to :brand) の間の関連付けを正常にテストしました。ここで、Rspec でユーザー (has_many :brands、has_many products、:through => :brands) とそのブランドの製品との関連をテストできるかどうかを知りたいと思っています。以下のコードは、私が念頭に置いていたものですが、明らかに機能しません。

ありがとうございました!

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

ruby-on-rails - 多対多の関連付けが失敗するのはなぜですか?

Twitterのようなフォローモデルを設定しました。ユーザーはすべて相互にサブスクライブできます。リレーションシップを作成しようとすると、ユーザー コントローラーでエラーが発生します。

ユーザー.rb:

サブスクリプション.rb

users_controller.rb

これは、フォローを呼び出すときのエラーです。

rake db:migrate を実行したことを確認しました - サブスクリプション テーブルには provider_id と follower_id の 2 つのフィールドがあります。誰でもエラーを手伝って、「user_id」属性を探している理由を説明できますか?

アップデート:

show.html.erb:

ルート.rb:

レーキルート | grep フォロー:

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

ruby-on-rails - Ruby on rails のアクティブなレコードの関連付け

ストアには 2 つのモデルが必要です。

  1. 靴のサイズ

私のコンセプトによれば、1 つの靴には複数のサイズがあります (1 つのモデルの靴は 34、35、36、37 サイズ)。

どのタイプの関連付けを使用すればよいですか? これらの関連付けをサポートするには、どのデータベース テーブル フィールドを作成する必要がありますか?

使用中のモデルの例を次に示します。

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

ruby-on-rails-3 - Rails 3.1 HABTMとカスタムforeign_keyの関連付けにより、誤った結合ステートメントが生成される

has_and_belongs_to_manyアソシエーションを使用しようとすると、かなり苛立たしい問題が発生しました。

シナリオは次のとおりです。

多くのニュースアイテムが関連付けられている製品があります。その逆も同様です。ニュースアイテムはさまざまな言語に翻訳できるため、同じコンテンツのニュースを追跡するために(ただし、異なる言語に翻訳されます)、ニュースにnews_idを追加しました。

私の問題は、関連付けが製品と一意のニュース(newsitem.news_id)の間にあり、単一のニュース項目(newsitem.id)ではないことです。

私のモデル:

私の移行は次のとおりです。

この設定を使用すると、呼び出し時に次の正しいSQLが生成されます。

SQL:

製品に関連するすべてのニュースアイテムを要求すると、問題が発生します。prod = Products.first prod.newsitems.to_sql SQL:

製品で:association_foreign_key =>:news_idを宣言し、ニュースアイテムで:foreign_key =>:news_idを宣言しましたが、生成される「ON newsitemsid」は間違っているため、次のようになります。

このナットを割って開けてくれる人がいるといいのですが。

よろしくお願いします-PeterPiper

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

ruby-on-rails - 効率的な結合クエリ-ActiveRecordを使用して実行できますか

A、B、C、Dの4つのモデルがあります

私は非常に素朴な実装を持っていますが、それは非常に明白です...

All C for Aを入手するための最良の方法は何ですか?All D for Aを入手する最良の方法は何ですか?

Bを反復処理する代わりに、「created_at」値を持つorder_by句を使用してすべての「C」を取得したいと思います。

ActiveRecordの魔法が欠けているのではないでしょうか?

助けていただければ幸いです。

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

cakephp - CakePhpで画像のある商品だけを取得する方法

画像付きの製品のみを取得するには、すべての検索結果 (管理領域を除く) が必要です。

PhotoSmall簡単な場合はPhotoSmall.id IS NOT NULL、CakePhp が左結合を生成するため、条件で実行できますがPhotoBig、CakePhp が 2 つのクエリを実行してその結果を返すため、最小オンを要求する方法が見つかりません。

要件は次のとおりです。システム全体PhotoSmallで少なくとも 1 つの製品のみを表示できますPhotoBig(サイトの管理セクションを除く)。ソリューションは CakePhp ページネーションで動作する必要があります。

次のコードを試しましたが成功しませんでした。写真データではなく製品データのみを返します。

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

ruby-on-rails - データベースの関連付けを定義する方法

私は現在、私たちの学校のスポーツ アカデミーが競技成績を保存してランク付けできるようにするオンライン アプリケーションを開発しています。2 つの別々のデータベースからの情報を結合しようとしています -ResultsそしてAthletes

Athletesなどの情報が含まれてい:name :gender :ageます。
Resultsを含む情報が含まれています。:name :event :performance

イベントに加えて、年齢や性別で結果をフィルタリングしたいと思います。
表示するデータのユーザー設定を指定するコードを設定し、値を設定し:justgender :justage:justevent

ただし、それに応じて結果をフィルタリングするのに苦労しています。

おそらく最も簡単な方法は、2 つのモデル間に「属する」関係を設定することで、名前を識別子として使用できるようです。ただし、通常、これが使用される場合、ユーザーは特定の値をパラメーターとして保存し、これを使用して、たとえばコメントを正しい投稿に関連付けることができます。

ユーザーが結果を入力し、アスリート名を指定できるようにする方法を設定したいと思います。これを使用してAthletes、結果を関連付けるために識別されるデータベース内のエントリを識別します。これが完了したら、SQL フィルターを使用して一致する結果を引き出すことができると思いますか?

ご協力いただきありがとうございます

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

ruby - belongs_to モデルのプロパティに適切にアクセスする方法

次のクラスとその関連付けを使用します。

リポジトリからプロパティにアクセスできます(例: Repository.first.branches.first.note)。

ブランチからリポジトリの名前を取得して、Branchからプロパティにアクセスできないようです(例: Branch.first.repository.first.name)。


** 解決済み ** DataMapper が既に(API)を使用しているため、 Repositoryをクラス名として実際に使用できないことがわかりました。解決策は、クラスの名前を変更するだけで、すべて意図したとおりに機能します。

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

ruby-on-rails - Rails-ActiveRecordアソシエーション

これは問題なく機能し、何が問題を引き起こしたのかはわかりませんが、次のエラーが発生します。

Rails3.1を実行しています。「restaurants」、「lists」、「list_Items」というテーブルがあります。関連付けは次のとおりです。

問題を引き起こしている行は、リストアイテムを表示するビューパーシャルにあります

これはすべてうまくいくはずだと思いますが、一番上のエラーを考えると、レストランの名前を取得できるように関連付けを認識していません。繰り返しますが、これは機能していました。なぜ今壊れているのかわかりません...

アップデート

Muが正しく指摘したように(Muに感謝)、問題は関連付けではなく、削除されたレストランに関連付けられたlist_itemの存在でした。それで、それはNilエントリに対して実行されていました。

上記は解決され、今、本当の質問(私が最初に尋ねるべきだった質問)は、これが起こらないようにする方法です。関連するレストランが削除されたときにlist_itemが確実に削除されるようにするには、何を変更する必要がありますか?