問題タブ [has-many-polymorphs]

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 投票する
2 に答える
141 参照

ruby-on-rails - Rails:オブジェクトが属するクラスがわからないときにオブジェクトのコンテンツを出力しようとしています

前文:

私のRails 3アプリがhas_many_polymorphs gemを使用しているという事実に怖がらないでください。ここで私を助けるためにgemに精通する必要はないと思います:)

私のコード:

多くのスニペットを持つ Post モデルがあります。snippetable、つまりタイプSnippetの4 つの追加モデルがあります。

投稿へのスニペットの追加

投稿に 2 つのテキスト スニペットと 2 つの画像スニペットを追加する場合は、次のようにします。

結果は、次のようなブログ投稿です。

  • テキストスニペット
  • 画像スニペット
  • テキストスニペット
  • 画像スニペット

私の問題

ビューに各スニペットのコンテンツを表示するのに問題があります。

私の見解では、次のことができます。

しかし、これは次のようなブログ投稿になります。

  • テキストスニペット
  • テキストスニペット
  • 画像スニペット
  • 画像スニペット

このようにスニペットがクラスごとにグループ化されることは望ましくありません。

どうすればこれを解決できますか?

さて、私は問題を見てきました。私は次のことができることを知っています

これにより、次のように各スニペットのクラス名が出力されます。

  • 文章
  • 画像
  • 文章
  • 画像

しかし、各スニペットのコンテンツが必要です。

上記の内容を拡張すると、各タイプのスニペットにはクラス自体と同じ名前の属性が 1 つあるため、次のようにすることもできます。

これにより、各スニペットのクラス名と属性名が出力されます。

  • テキスト.テキスト
  • 画像.画像
  • テキスト.テキスト
  • 画像.画像

クラス名ではなくコンテンツに到達する方法を見つけることができれば、大丈夫です。誰でも手がかりを得ましたか?

誰かがこれを手に入れたら、私は絶対に驚かれることでしょう。ここまで読んでくれてありがとう。

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

ruby-on-rails - has_many_polymorphs での関連付けの競合

has_many_polymorphs を使用して、複数のユーザーがストーリーを投稿してコメントできるサイトに「お気に入り」機能を作成しています。ユーザーがストーリーやコメントを「お気に入り」できるようにしたい。

@user が記事を書いたとします。@user.stories.size = 1 になりました。その後、@user は別のストーリーをお気に入りにしました。今@user.stories...ちょっと待ってください。@user has_many :stories および :has_many :stories から :favorites まで。

@user.stories または @user.comments を呼び出そうとすると、問題が発生します。所有しているストーリーには @user.stories を、お気に入りのストーリーには @user.favorites.stories を呼び出したいと思います。

だから私はこれを試しました:

次に、ストーリーとコメントを次のようにサブクラス化します。

@user.stories と @user.favorite_stories を呼び出すことができるようになったため、問題は解決しました。

しかし、コメントに関してこのエラーが発生した場合:

ActiveRecord::Associations::UsersController の PolymorphicError#show

同様のコンテキストでこのエラーに関する議論を見つけましたが、私の質問には答えません。

何が起きてる?どうすればこれを改善できますか?

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

ruby-on-rails - has_many:through、:source、:source_typeは空の配列を返します

私はいくつかManagerSoccerTeamモデルを手に入れました。マネージャーは多くのサッカーチームを「所有」しています。また、マネージャーはサッカーチームにコメントしたり、他のマネージャーにもコメントしたりできます。

manager.rb

Soccer_team.rb

comment.rb

さて、もし私がサッカーチームにコメントしているマネージャーがいるなら、私は見つけることを期待しています:

  • 内外のCommentオブジェクトmanager.reviewssoccer_team.comments
  • SoccerTeamオブジェクトmanager.observed_teams
  • Managerオブジェクトsoccer_team.observers

1番目と3番目のポイントではすべてがうまく機能しますが、呼び出すmanager.observed_teamsと常に空の配列が取得されます。マネージャーがコメントしたサッカーチームのリストを実際に入手するには、次のものを使用する必要があります。

これは醜いです。シンプルに機能することを期待しmanager.observed_teamsています…なぜ機能しないのですか?

編集

なぜそれが機能しないのかを理解するためにさらに一歩進んだ。実際、生成されたSQLは次のとおりです。

私はそれをしたいのですが:

したがって、質問は単純です。そのクエリを取得する方法は?:foreign_key(予想どおり、 ansを使用したヒューリスティックな試みで:asは、問題は解決していません!)。

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

ruby-on-rails - Rails の自己参照 has_many を介して

親、学生、家庭教師の 3 つの基本的なユーザー タイプを持つ自己参照型のユーザー クラスを作成しようとしています。生徒は保護者に属し、チューターに属することもできます。もちろん、私が書いたように、レールは生徒を持つ親だけを認識します。User.students は、ユーザーが家庭教師の場合は常に空を返しますが、ユーザーが親の場合は機能します。何か案は?

リレーションシップ クラス:

セクション (保護者、生徒、チューター) もそれぞれ独自のクラスです。基本的なユーザー情報は User クラスにあり、チューターに固有のデータは Tutor クラスにあります。

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

ruby-on-rails - rails3モデルの質問

私はphpからrails3に移行しましたが、それでも良い決断だったと思います。とにかく私はいくつかのモデルを持っています:

ユーザー向けモデル:

質問のモデル:

回答のモデル:

投票のモデル:

さて、私の質問です。ユーザーが回答に投票したら、そのユーザーとその特定の質問への投票を終了する必要があります...

プロジェクトの残りの部分では、ユーザーと承認にdeviseとcancanを使用しています...

私の見解では、次のようになります。

次に、投票ボタンをレンダリングするスクリプトを実行します...

私の投票モデルでは、answer_idとuser_idがあり、current_user.idと現在のquestion.idがわかっているので、vote.user_idに現在のquestion.idにあるvote.answer_idがある場合、ボタン作成スクリプト...aarghhしかし、これを機能させる方法...?

よろしくお願いします!そしてよろしく、Thijs

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

ruby-on-rails - has_many_polymorphsプラグインは私にこのエラーを与えています

これは、新しいモデルを作成しようとしたときのログのエラーです。

これは、has_many_polymorphsプラグインからのものです...

ここにconfig/environment.rbがあります:

これは/rubyprograms/dreamstill/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/configuration.rb

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

ruby-on-rails - has_many_polymorphs とエラーに対してこれらの CRUD コントローラー アクションを設定する方法

ビデオ、トピック、およびユーザーをプロファイルに投稿できるように、 has_many_polymorphsプラグインを使用しています。したがって、プロファイルには、ビデオ、トピック、およびユーザーである可能性のある多くの「showable_objects」があります。また、「showable_object」を作成したユーザーも関連付けられます。モデルの関連付けは既に設定しています (以下)。

showable_object を作成する方法は、ユーザーがリソースの表示ページのオートコンプリート フィールドから別のユーザーを選択することです。次に、そのリソースが、選択したユーザーのプロファイルに関連付けられます。

私の質問は、showable_objects コントローラーをどのように設定すればよいですか? また、AJAX 経由で送信したい場合、AJAX jQuery リクエストはどのようになりますか?

アップデート:

ここに私のモデルの関連付けがあります:

これは私の ShowableObject 移行です:

ちなみに、これらの関連付けからこのエラーも発生しています(したがって、これは実際には2つの部分からなる質問です:P):

これはこの行を指しており、ユーザー モデルで<% if video.owned_by? current_user %>の呼び出しに関係しています。has_many_polymorphs

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

ruby-on-rails - has_many スルーおよびポリモーフィックな関係

これが可能かどうかはわかりませんが、次のようになります。

私が呼び出すことができる必要がある関係は何ですか:

Apple と Banana の Worm とのポリモーフィックな関係を通じて、Worm のすべてを取得できますか?

ちょっと後ろ向きに思えますが、とにかく助けてくれてありがとう!説明が必要な場合は、質問してください。

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

ruby - Rails 3、has_many :through および :polymorphic - これを行う必要がありますか?

わかりましたので、ここに行きます。物事を複雑にしすぎているのか、それともまだ Rails に慣れていないために基本を理解していないだけなのかはわかりません。私がsudoコードで欲しいのはこれです:

次に、次の魔法のものが欲しいです。

それを書き留めてみると、このモデルに対する私の理解には別のギャップがあることがわかります。ユーザーは、所有者、フォロワー、寄稿者、または 3 つすべての組み合わせの役割を持つことができます。

実際のコードに関しては、関連する部分だと思うものをここに追加しました。

リレーションシップ モデルの移行は次のとおりです。

現在、project.users などのエラーが発生しますActiveRecord::HasManyThroughAssociationNotFoundError: Could not find the association :relateable in model Project

私は自分が欲しいものを本当に手に入れるにはここの荒野にいるように感じます.そして多分それ以上のことをするために魔法のレールに頼っています. 最適なパスに関するガイダンスをいただければ幸いです。

前もって感謝します

スティーブ

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

ruby-on-rails - ポリモーフィック has_many の問題

次の表「参加」があります。

私は次のモデルを持っています:

これは、こちらの記事に示されているとおりであり、こちらの ActiveRecord ドキュメントにも似ています。Coupon.first.groups または Coupon.first.locations にアクセスすると、次のエラーで惨めに失敗します。

他のバリエーションをいくつか試しましたが、うまくいきませんでした。もちろん、Group.first.participations にアクセスすると、「undefined method」エラーが発生します。