問題タブ [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.
ruby-on-rails - Rails:オブジェクトが属するクラスがわからないときにオブジェクトのコンテンツを出力しようとしています
前文:
私のRails 3アプリがhas_many_polymorphs gemを使用しているという事実に怖がらないでください。ここで私を助けるためにgemに精通する必要はないと思います:)
私のコード:
多くのスニペットを持つ Post モデルがあります。snippetable、つまりタイプSnippetの4 つの追加モデルがあります。
投稿へのスニペットの追加
投稿に 2 つのテキスト スニペットと 2 つの画像スニペットを追加する場合は、次のようにします。
結果は、次のようなブログ投稿です。
- テキストスニペット
- 画像スニペット
- テキストスニペット
- 画像スニペット
私の問題
ビューに各スニペットのコンテンツを表示するのに問題があります。
私の見解では、次のことができます。
しかし、これは次のようなブログ投稿になります。
- テキストスニペット
- テキストスニペット
- 画像スニペット
- 画像スニペット
このようにスニペットがクラスごとにグループ化されることは望ましくありません。
どうすればこれを解決できますか?
さて、私は問題を見てきました。私は次のことができることを知っています:
これにより、次のように各スニペットのクラス名が出力されます。
- 文章
- 画像
- 文章
- 画像
しかし、各スニペットのコンテンツが必要です。
上記の内容を拡張すると、各タイプのスニペットにはクラス自体と同じ名前の属性が 1 つあるため、次のようにすることもできます。
これにより、各スニペットのクラス名と属性名が出力されます。
- テキスト.テキスト
- 画像.画像
- テキスト.テキスト
- 画像.画像
クラス名ではなくコンテンツに到達する方法を見つけることができれば、大丈夫です。誰でも手がかりを得ましたか?
誰かがこれを手に入れたら、私は絶対に驚かれることでしょう。ここまで読んでくれてありがとう。
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
同様のコンテキストでこのエラーに関する議論を見つけましたが、私の質問には答えません。
何が起きてる?どうすればこれを改善できますか?
ruby-on-rails - has_many:through、:source、:source_typeは空の配列を返します
私はいくつかManager
とSoccerTeam
モデルを手に入れました。マネージャーは多くのサッカーチームを「所有」しています。また、マネージャーはサッカーチームにコメントしたり、他のマネージャーにもコメントしたりできます。
manager.rb
Soccer_team.rb
comment.rb
さて、もし私がサッカーチームにコメントしているマネージャーがいるなら、私は見つけることを期待しています:
- 内外の
Comment
オブジェクトmanager.reviews
soccer_team.comments
- の
SoccerTeam
オブジェクトmanager.observed_teams
- の
Manager
オブジェクトsoccer_team.observers
1番目と3番目のポイントではすべてがうまく機能しますが、呼び出すmanager.observed_teams
と常に空の配列が取得されます。マネージャーがコメントしたサッカーチームのリストを実際に入手するには、次のものを使用する必要があります。
これは醜いです。シンプルに機能することを期待しmanager.observed_teams
ています…なぜ機能しないのですか?
編集
なぜそれが機能しないのかを理解するためにさらに一歩進んだ。実際、生成されたSQLは次のとおりです。
私はそれをしたいのですが:
したがって、質問は単純です。そのクエリを取得する方法は?:foreign_key
(予想どおり、 ansを使用したヒューリスティックな試みで:as
は、問題は解決していません!)。
ruby-on-rails - Rails の自己参照 has_many を介して
親、学生、家庭教師の 3 つの基本的なユーザー タイプを持つ自己参照型のユーザー クラスを作成しようとしています。生徒は保護者に属し、チューターに属することもできます。もちろん、私が書いたように、レールは生徒を持つ親だけを認識します。User.students は、ユーザーが家庭教師の場合は常に空を返しますが、ユーザーが親の場合は機能します。何か案は?
リレーションシップ クラス:
セクション (保護者、生徒、チューター) もそれぞれ独自のクラスです。基本的なユーザー情報は User クラスにあり、チューターに固有のデータは Tutor クラスにあります。
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
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
:
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
ruby-on-rails - has_many スルーおよびポリモーフィックな関係
これが可能かどうかはわかりませんが、次のようになります。
私が呼び出すことができる必要がある関係は何ですか:
Apple と Banana の Worm とのポリモーフィックな関係を通じて、Worm のすべてを取得できますか?
ちょっと後ろ向きに思えますが、とにかく助けてくれてありがとう!説明が必要な場合は、質問してください。
ruby - Rails 3、has_many :through および :polymorphic - これを行う必要がありますか?
わかりましたので、ここに行きます。物事を複雑にしすぎているのか、それともまだ Rails に慣れていないために基本を理解していないだけなのかはわかりません。私がsudoコードで欲しいのはこれです:
次に、次の魔法のものが欲しいです。
それを書き留めてみると、このモデルに対する私の理解には別のギャップがあることがわかります。ユーザーは、所有者、フォロワー、寄稿者、または 3 つすべての組み合わせの役割を持つことができます。
実際のコードに関しては、関連する部分だと思うものをここに追加しました。
リレーションシップ モデルの移行は次のとおりです。
現在、project.users などのエラーが発生しますActiveRecord::HasManyThroughAssociationNotFoundError: Could not find the association :relateable in model Project
私は自分が欲しいものを本当に手に入れるにはここの荒野にいるように感じます.そして多分それ以上のことをするために魔法のレールに頼っています. 最適なパスに関するガイダンスをいただければ幸いです。
前もって感謝します
スティーブ