問題タブ [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.

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

ruby-on-rails - RoR: このシナリオでは、belongs_to, :polymorphic を使用する必要がありますか?

私は、多くの ActiveRecord モデルがそれに関連付けられた会話を持つことができるプロジェクトに取り組んでいます。ユーザーは、サイトのほぼすべての側面について話し合うことができます。これをどのように実装するかについて、2 つの考えがあります。

1) 会話ではなくアセット内で belongs_to を使用します - 会話はそのアセットをまったく認識しません

2) 会話で belongs_to, :polymorphic => true を使用する

この関係をモデル化する正しい方法はどれですか? その関係を一言で表すならば、「商品・発注書の会話は一つかもしれません」。

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

ruby-on-rails - モデルに同じモデルが 1 つまたは複数ある場合の ActiveRecord リレーション

私のデータは次のようになります。

個人は 1 つのチームにしか所属しませんが、多くのチーム メンバーの中でリーダーは 1 人だけです。

最初の質問: Team モデルで has_one の代わりに belongs_to を使用する必要がありますか?

2 番目: チームは、最初にわかっている多くの人物とリーダーで作成されます。これはどのように行うべきですか?

現在、コントローラーで次のようなことを行っています。

これは問題です。@team.persons をリストすると、@team.leader が最初の ID を持ちます。@team.save が最初にリーダーの関連付けを保存するためだと思います。提供された順序である必要があります。

ありがとう!

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

routing - Rails 3 has_one ルーティング

私は2つのクラスを持っています:

Foo はオプションです。

次のルーティングを作成しました。

その結果、次のルートになります。

質問:

  1. Index および Show アクションは冗長なようです。それらの1つを削除する必要がありますか?もしそうなら、どれですか?
  2. user_id は foos テーブルの外部キーであり、ユーザーごとに 1 つの foo しかないため、Show アクションの :id パラメータは不要のようです。私は間違っていますか?
  3. foo がない場合に New アクションにルーティングする適切な方法が必要です。1 つのオプションは、@user.foo.nil をテストすることでしょうか? FooController の Show または Index アクションで、次に New アクションにリダイレクトします。より良い方法はありますか?

御時間ありがとうございます。

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

ruby-on-rails - 2つの外部キーを持つhas_one?

Message と User の 2 つのクラスがあります。メッセージには、送信者 ID と受信者 ID の両方がユーザーの外部キーがあります。@message.sender.name と @message.recipient.name のように、送信者と受信者の両方のユーザーを取得できる関係を構築する方法

私はこの方法でそれをやろうとしました:

たとえば、@message.recipient.nameにアクセスしようとすると、「未定義のメソッド「名前」」と表示されます

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

mysql - BelongsToとhasOneの関係が設定されているモデルはどうなりますか?

2つのモデルがbelongsToとhasOneの関係に同時に関連付けられている場合はどうなりますか?
フレームワークはこの状況を検出して、大量のデータを取得しないようにしますか?

編集:特にCakePHPですが、他のフレームワークが行うことも役に立ちます。

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

ruby-on-rails - オブジェクトが Rails IRB での変更の保存を拒否する

みんなおはよう、

作業中の関連付けがありますが、何らかの理由で、IRB でデバッグしているときに問題のオブジェクトへの変更を保存できません。誰かが私の問題を指摘できるかどうか疑問に思っていました。

ここに協会があります:

IRB を起動すると、User.first と Affiliate.first を取得できます。ユーザーの managed_affiliate を問題なく設定できます。ただし、保存すると、それがアフィリエイトにまったく反映されません。マネージャーがいません。同様に、アフィリエイトのマネージャーも問題なく設定できます (Affiliate.first.manager = User.first)。すべて問題ないように返されますが、保存しようとすると単に「false」が返されます。IRB ログ機能を有効にすると、次のような出力が得られます。

この関連付けが適切に保存されない明らかな理由はありますか?

また、アフィリエイト テーブルのスキーマは次のとおりです。

助けてくれてありがとう。

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

ruby-on-rails - belongs_to has_one 構造体

次の特性を持つアプリケーションがあります

ユーザーテーブルがあります。ユーザー テーブルには、基本的に、クラブ マネージャー、チーム マネージャー、およびプレーヤーがシステムにログインするためのユーザー名とパスワードが含まれています。

モデルとテーブルをどのように構成すればよいですか?

クラブ、チーム、選手のテーブルを作成する予定です。しかし、それらと users テーブルの間の関係を構造化する方法がわかりません。

user_idそれぞれのモデルで作成できましたが、その関係はClub belongs_to User正しくないようです。さらに、次のようなユーザーモデルになります

これは正しくありません。ユーザーは、いつでもそれらのうちの 1 つのみを持つことができます。

これを構造化するより良い方法はありますか?

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

ruby-on-rails - Rails では、「has_many と has_to」を使用する場合と「has_many と has_one」を使用する場合の違いは何ですか?

たとえば、

上記は正しい使用法であるはずですが、使用するとどうなりますか

student.awards上記は Award オブジェクトの配列としても、賞の受賞者である Student オブジェクトとしても可能ではないaward.studentので、投稿の上部にあるメソッドと同じように機能しますか?

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

ruby-on-rails - link_to_remote を介して :has_one 値を更新するにはどうすればよいですか?

モデル Contact の :status_contact の値を変更できるようにしたい (has_one :status_contact

link_to_remote を含むスニペットは次のとおりです。

Contact.rb の関連するモデル定義は次のとおりです。

エラーから、おそらく特別なルートを作成する必要があるようです?

link_to_remote をクリックすると、ajax を介して値が変更されるようにするにはどうすればよいですか?

更新: 以下の変更を行った新しいエラー:

コントローラーで探しているアクションがわかりません。「更新」アクションがあります。これは、Firebug コンソールを介して渡される URL です。

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

ruby-on-rails - Rails: nil エラーを回避するために関連付けが見つからない場合は関連付けを作成します

ユーザーが一連の設定を行えるアプリケーションがあります。どちらも次のように ActiveRecord モデルとして保存されます。

ユーザーの設定にアクセスできるようになりました。

しかし、 @u.preference_set が nil を返し、play_soundsonを呼び出すため、設定セットがまだ作成されていない場合、これは失敗しますnil

アーカイブしたいのは、 User.preference_set が常に PreferenceSet インスタンスを返すことです。私はそれを次のように定義しようとしました:

'Stack level too deep'再帰的に自分自身を呼び出しているため、これは を引き起こしています。

私の質問はこれです:

対応するpreference_set-recordを@user.preference_set返すか、存在しない場合は新しいレコードを作成するにはどうすればよいですか?

アソシエーションの名前を変更するだけでよいことはわかっていますが (例: preference_set_real)、この方法で再帰呼び出しを回避できますが、アプリをシンプルにするために、この名前をそのまま使用したいと思います。

ありがとう!