問題タブ [has-many-through]

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

ruby-on-rails - Rails has_many :through で結合モデル属性を使用する

例として、私はモデルグループとモデルユーザーを持っています

彼らは :has_many, :through => groups_users で接続されています

groups_users テーブルにはモデレーターと呼ばれる属性があり、ユーザーがグループのモデレーターであるかどうかを指定します

質問: 特定のグループのすべてのモデレーターにアクセスするにはどうすればよいですか?

:with_scope について読んだ後、頭に浮かぶのは

ただし、Rails 2 以降、with_scope は保護され、コントローラーで特定のコードを使用できなくなります。

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

ruby-on-rails - Railsのhas_many:through join model属性を更新するにはどうすればよいですか?

モデルグループとモデルユーザーがいます

それらは「has_many:through=>groups_users」で双方向に接続されています

groups_usersテーブルには、ユーザーがグループのモデレーターであるかどうかを指定する、moderatorと呼ばれる属性があります。

参加モジュール属性を更新しようとすると、間違いが発生します

私が今それをしている方法:

コードはmysqlの間違いを引き起こしています:

それを行うためのより良い方法はありますか、それともgroups_users結合モデルテーブルにid列を追加してidにインデックスを付ける必要がありますか?

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

ruby-on-rails - 従属 => 「has_many through」関連で破棄

:through オプションも使用すると、どうやら依存 => 破棄は無視されます。

だから私はこれを持っています...

...しかし、コメントを削除しても、関連する comment_user レコードは削除されません。

では、:through を使用する場合のカスケード削除の推奨されるアプローチは何ですか?

ありがとう

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

ruby-on-rails - RubyonRailsには多くのスルーアレイの問題があります

を使用してHasManyThroughアソシエーションに追加する際に問題が発生しましたuser_ids

私のコミュニケーションモデルは次のようになります。

通信コントローラーの作成アクションで、次のuser_idsように通信オブジェクトに手動で追加しようとしています。

@communication.user_ids次のようにハードコードされたIDを実行しても、配列が空である理由を理解できません。

まだ空の@communication.user_ids配列を取得しています。

私の方法で何かが欠けていますか?これを機能させるためのヒントはありますか?

前もって感謝します!

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

ruby-on-rails - Ruby on Rails で has-many クラス間の関連付けレコードを保存する方法

BooksPeople、およびBookLoansを表す 3 つのクラスを作成しました。BookLoans を介して人と本との関連付けを示すことができますが、私は自分のデータベースをシードしてきました。

私は今、本のチェックアウトを保存する必要があります。ブックコントローラーを介してこのアクションを実行することが私の意図でした。具体的には、BooksController でローン アクションを作成します。これは理論的には理にかなっていますが、適切な構文を実装するのに苦労しています。

本のショー ビューから本を貸与する機能を追加しました。このビューには、ブック コントローラーのローン アクションを使用してローンを記録するフォームが含まれています。

Book モデルに適切なメソッドであると思われるものを追加しました。theIVの助けを借りて、適切な情報をコントローラーに取り込みました。残念ながら、ブック ショー ビューで Loan を押すと、book_loan レコードが記録されません。

私は何が欠けていますか?

ブックモデル

BooksController からの Loan メソッド

貸し出しフォーム付きブックショービュー

ブックローン モデル

人物モデル

開発ログ

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

ruby-on-rails - 結合テーブル フィールドを表示しています

ここでは、employments 結合テーブルから追加の属性 CONFIRMED を表示したいと思います。私は何を間違っていますか?

私のジョブビューでは、各ジョブの確認済みの値を表示したいと考えています。私はそれを得ることができないようです。私の見解では、私は持っています:

ここでは、employments 結合テーブルから追加の属性 CONFIRMED を表示したいと思います。私は何を間違っていますか?

ありがとう

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

ruby-on-rails - has_many :through と Honor :conditions を使用して新しいレコードを作成するにはどうすればよいですか?

学生がメンバーシップ (たとえば、コースと学生の has_and_belongs_to_many 関係) を介して登録できるコースがあるとします。一部のメンバーシップは、クラスを観察するだけの学生向けです(単位取得などではありません)。

うまく機能するのは次のとおりです。

機能しないものは次のとおりです。

私は、関連付けを使用して新しいレコードを作成できると考えていたでしょう。

  1. 新しい Student レコード ('Joe Student')
  2. 新しいメンバーシップ レコード (course_id = 37、student_id = (joe)、observer = true)

しかし、代わりに私は得る:

私はこれについて完全に混乱していると確信しており、洞察をいただければ幸いです! また、メンバーシップ モデルの名前付きスコープを使用してこれを実行しようとしましたが、関連付けで has_many にスコープを使用させることができないようです。

可能な限り助けてくれてありがとう!

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

ruby-on-rails - 結合テーブル フィールドを更新しています

私の見解では、ユーザーのクリックで確認済みフィールドを 0 から 1 に更新しようとしています。

私の仕事のコントローラーで私は持っています

これはすべて間違っていると確信していますが、 has_many: through に関しては推測しているようです。結合されたテーブルの確認済みフィールドを更新するにはどうすればよいですか?

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

ruby-on-rails - 2つの異なる方法で相互に関連する2つのモデル間のActiveRecord関係を定義するにはどうすればよいですか?

私のアプリには、ユーザー、ビデオ、投票のクラスがあります。ユーザーと動画は、1対多または多対多の2つの異なる方法で相互に関連付けることができます。前者は、ユーザーが動画を送信する場合です(1人のユーザーが多数の動画を送信できます)。後者は、ユーザーがビデオに投票する場合です(ユーザーは投票を通じて多くのビデオを持っており、その逆も同様です)。これが私のコードですが、機能しません(私は、ビューで何か間違ったことをしている可能性があると思います)。これらの関連付けを構成する正しい方法を理解するのを手伝ってください。

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

ruby-on-rails - 自己参照関連による has_many

(例として)has_many人の友人によるすべての投稿への関連付けを作成しhas_many :remote_postsたいperson > friends > person > posts.

..これが私がそれについて行く方法です




今、

...そして、このエラーが発生します..

ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: people.person_id: SELECT "posts".* FROM "posts" INNER JOIN "people" ON "posts".person_id = "people".id WHERE (("people".person_id = 1))

外部キーエラーは別として、友情協会がまったく機能していないようです。:source => :posts関連付けが 2 回行われるため、これは のせいではないかと考えてpostsいました。

finder sql を書くこともできます (それが現在私が取り組んでいるものです) が、もっと早くこの方法で書きたいと思います。

これを機能させる方法のアイデアはありますか?