タグ付けされた質問 「associations」


6
このActiveRecord :: ReadOnlyRecordエラーの原因は何ですか?
これは答えられたこの前の質問に続く。実際に、そのクエリから結合を削除できることを発見したので、機能するクエリは start_cards = DeckCard.find :all, :joins => [:card], :conditions => ["deck_cards.deck_id = ? and cards.start_card = ?", @game.deck.id, true] これは動作するようです。ただし、これらのDeckCardを別の関連付けに移動しようとすると、ActiveRecord :: ReadOnlyRecordエラーが発生します。 これがコードです for player in @game.players player.tableau = Tableau.new start_card = start_cards.pop start_card.draw_pile = false player.tableau.deck_cards << start_card # the error occurs on this line end および関連するモデル(tableauはテーブルのプレイヤーカードです) class Player …

4
Rails:dependent =>:destroy VS:dependent =>:delete_all
レールガイドでは次のように説明されています: オブジェクトは、に関連付けられている場合はさらに破棄:dependent => :destroyされ、に関連付けられている場合は削除されます:dependent => :delete_all そうですね。しかし、破壊されることと削除されることの違いは何ですか?私は両方を試しました、そしてそれは同じことをするようです。

4
MongoDB多対多協会
MongoDBと多対多の関連付けをどのように行いますか? 例えば; たとえば、UsersテーブルとRolesテーブルがあるとします。ユーザーには多くの役割があり、役割には多くのユーザーがいます。SQLランドでは、UserRolesテーブルを作成します。 Users: Id Name Roles: Id Name UserRoles: UserId RoleId MongoDBで同じ種類の関係はどのように処理されますか?

4
Rails:Railsでhas_oneアソシエーションでビルドを使用する
この例では、userをno profileで作成し、後でprofileそのユーザーのを作成します。has_oneアソシエーションでビルドを使用しようとしましたが、失敗しました。これが機能しているのを見る唯一の方法は、を使用することhas_manyです。userだけ多くても1つで持っていることになっていますprofile。 私はこれを試してきました。私が持っています: class User < ActiveRecord::Base has_one :profile end class Profile < ActiveRecord::Base belongs_to :user end しかし、私がするとき: user.build_profile エラーが発生します: ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'profiles.user_id' in 'where clause': SELECT * FROM `profiles` WHERE (`profiles`.user_id = 4) LIMIT 1 レールで0または1の関連付けを行う方法はありますか?

4
単方向と双方向のJPAとHibernateの関連付けの違いは何ですか?
単方向と双方向の関連付けの違いは何ですか? dbで生成されたテーブルはすべて同じであるため、私が見つけた唯一の違いは、双方向の関連付けのそれぞれの側が他方を参照し、単方向ではないことです。 これは一方向の関連付けです public class User { private int id; private String name; @ManyToOne @JoinColumn( name = "groupId") private Group group; } public class Group { private int id; private String name; } 双方向の関連付け public class User { private int id; private String name; @ManyToOne @JoinColumn( name = "groupId") private …

5
Rails 3でのビルドと新規
Rails 3のドキュメントではbuild、関連付けのnew方法はメソッドと同じであると説明されていますが、外部キーが自動的に割り当てられます。ドキュメントから直接: Firm#clients.build (similar to Client.new("firm_id" => id)) 私は他の場所でも同様に読みました。 ただし、使用する場合new(some_firm.clients.newパラメーターなしなど)、新しいクライアントのfirm_id関連付けが自動的に作成されます。今、コンソールで結果を見つめています! 何か不足していますか?ドキュメントは少し古くなっていますか?違いは何だbuildとはnew?

5
Railsの移行:別の名前のt.references?
だから私は学校のコースのためにこのようなcreate_tableを持っています: create_table :courses do |t| t.string :name t.references :course t.timestamps end しかし、私はそれが他の2つのコースを参照することを望んでいます: has_many :transferrable_as # A Course has_many :same_as # Another Course 次のように言ってもいいですか? t.references :transferrable_as, :as=> :course

11
Factory Girlでhas_and_belongs_to_many関連付けを作成する方法
次の場合 class User < ActiveRecord::Base has_and_belongs_to_many :companies end class Company < ActiveRecord::Base has_and_belongs_to_many :users end 双方向の関連付けを含め、企業とユーザーの工場をどのように定義しますか?これが私の試みです Factory.define :company do |f| f.users{ |users| [users.association :company]} end Factory.define :user do |f| f.companies{ |companies| [companies.association :user]} end 今私は試す Factory :user おそらく当然のことですが、工場は相互に再帰的に自分自身を定義するために使用するため、無限ループになります。 より驚くべきことに、これをどこで行うかについての言及はどこにも見つかりませんでした。必要なファクトリを定義するためのパターンはありますか、それとも根本的に間違っていることをしていますか?

6
複数の外部キーとのRailsの関連付け
1つのテーブルで2つの列を使用して、関係を定義できるようにしたい。したがって、例としてタスクアプリを使用します。 試行1: class User < ActiveRecord::Base has_many :tasks end class Task < ActiveRecord::Base belongs_to :owner, class_name: "User", foreign_key: "owner_id" belongs_to :assignee, class_name: "User", foreign_key: "assignee_id" end それで Task.create(owner_id:1, assignee_id: 2) これにより、Task.first.ownerどちらがユーザー1Task.first.assigneeを返し、どちらがユーザー2を返すが、User.first.task何も返さないかを実行できます。どのタスクがユーザーに属していないため、彼らはに属し、所有者および譲受人。そう、 試行2: class User < ActiveRecord::Base has_many :tasks, foreign_key: [:owner_id, :assignee_id] end class Task < ActiveRecord::Base belongs_to :user end 2つの外部キーがサポートされていないように見えるため、これは完全に失敗します。 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.