問題タブ [has-and-belongs-to-many]
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 の has_and_belongs_to_many
has_many :through の代わりに、レールで has_and_belongs_to_many アソシエーションを使用することに明らかに問題がありますか? 相違点と回避策を説明しているこれらの 記事 は知っていますが、それらは 2006 年のものです。私が SO で読んだことから、habtm は古くて扱いにくいと思われているようですが、単純な多対多が参加するとどうなるでしょうか。モデルは必要ありません。お探しのモデルはありますか?
考え?
ruby-on-rails - HABTM2テーブル2つの異なる関係
数十のサービスのIDと名前を含むサービスタイプテーブルがあります。
提案されたサービスのリストと受け入れられたサービスのリストが必要なプロジェクトテーブルがあります。
私は、project_service_typesテーブルを間に挟んで両側でHABTMを使用することを知っています。
同じテーブル間に2つの異なる関係がある場合、どうすればよいかよくわかりません。:join_tableと:associated_forign_keyを使用していると思われますが、アプリで機能させることができません。
ありがとう。
cakephp - Cakephp タグ付け - 新しいタグとタグ関係を自動保存
私は CakePHP でのタグ付けについてよく読みましたが、投稿とタグをこの投稿に保存する「クリーンな」方法を見つけることができません。Post テーブル、モデルとコントローラー、Tag テーブル、モデルとコントローラー、posts_tags テーブルに必要なものはすべて揃っています。ポストとタグ モデルで HABTM アソシエーションを作成しました。
新しい投稿を保存したい場合、CakePHP がその投稿に関連付けられたタグを自動的に保存するようにしたいのですが、そのための正しい方法が見つかりません。ほとんどのチュートリアルでは、「ヘルパー」関数 ( http://www.jamesfairhurst.co.uk/posts/view/full_cakephp_application_part_5 => "_parse_genres") またはそのようなものを使用する必要がありますが、CakePHP との取引を考えましたつまり、正しくセットアップすれば、これはすべて Cake によって行われます。
私の質問は、それを行うための「クリーンな」ケーキの方法はありますか、それともヘルパー関数を使用する必要がありますか?
ruby-on-rails - ActiveRecord が HABTM リレーションの更新に失敗する
私は、2 つの ActiveRecords を使用したユーザー認証に単純なモデルを使用しUser
ており、相互に HABTM 関係を持っていますRole
User
。Role
Railscasts Episode #17のように、簡単なチェックボックスでユーザーにロールを割り当てるためのユーザー インターフェイスを作成しようとしました。
私の問題は、フォームから送信されたパラメーターを使用して、オブジェクトとその役割の間の関係を更新しUser#new
ないことです。正しい値が含まれています。ただし、 orの直後に呼び出すと、空の配列が返されます。User#update_attributes
User
params[:user][:role_ids]
@user.roles
User.new(params[:user])
@user.update_attributes(params[:user])
または を使用してロールを手動で割り当てることはできますが、@user.roles
or内の「魔法」@user.role_ids
は機能しません。User#new
User#update_attributes
何か案は?
cakephp - CakePHP で HABTM 結合テーブルの HABTM 関連付けにデータを書き込むにはどうすればよいですか?
次の構造でデータを保存しようとしています:
ご覧のとおり、ユーザーとエクスペリエンステーブルの間に HABTM 関連付けがあります。また、 experiences_usersとtagsの間に別の HABTM があります。次のフォームを作成しました。
そして、すべてがうまく機能します。saveAllメソッドは、新しいエクスペリエンスを作成し、この新しいエクスペリエンスを 2 人のユーザーに割り当て ( Experiences_users を介して)、設定を行います。
私を悩ませているのは、新しく作成されたexperience_usersレコード(最初のレコード)にいくつかのタグを割り当てたいということです。コメントされたもののいくつかを介して行う必要があると思いました。このコメント化されたコードのすべての行はフォームを作成し、データを$this->dataに送信しますが、保存されることはありません。
私の質問は次のとおりです: 私の例で $this->data または $form->input の正しい構文は何ですか?
ruby-on-rails - Rails の has_and_belongs_to_many がフィクスチャとファクトリと混同しています
一般的な混乱
私は 3 つのジャンルを持つことができるバンドを持っています。以前の SO 投稿で、これを処理する適切な方法はいくつかの手順であると読みました。
1) band.rb内
2) band_genres 結合テーブルを作成する
ドキュメントを読んだ後でも、HABTM が実際に何を意味するのかについて少し混乱しています。普通は「バンドってジャンルが多い」と思ってしまうのであって、複数を持っているわけでも所属しているわけでもありません。したがって、それについての簡単な説明は素晴らしいでしょう。
備品との混同
また、band_genres のフィクスチャを実行するときに、
そして、「不明な」バンド列が表示されます。Railsは、「The Reaper Band」がバンドフィクスチャ(もちろん同じ名前)のバンドを参照し、そのIDを取得し、このフィクスチャの「バンド」が結合テーブルのband_idを参照することを知っているはずだと思いました. ハードコードされた数字よりも、フィクスチャがこのように見えることを望みます。
工場との混同
工場でバンドを作成するときに、ジャンルを割り当てたい:
ここで、おそらくハードコーディングされたgenre_idが必要になることに気づきました。しかし、レールはそれを見て、「ああ、id=2 のジャンルを band_genres テーブルに追加したい」と言わないのはなぜですか。
Railsがすべての面倒な作業を処理してくれるとは思っていませんが、ルールを守りたいと思っています。
ruby-on-rails - 単一テーブルの継承に関連付けられた HABTM 関連付け
多くのセクションを持つ製品モデルがあり、セクションは多くの製品に属することができます。
セクション モデルには、Feature、Standard、および Option のサブクラスがあります。
私のモデルは次のとおりです。
私の製品コントローラーでは、これを行うことができます:
次のようなサブクラスにアクセスできるようにしたい:
しかし、「未定義のメソッド「機能」」などでエラーが発生するだけです。
誰でもこれを行う方法を教えてください。
cakephp - post habtm postlover : postlovers の数で投稿を並べ替えるには?
私を助けてください、私はこれに本当に苦労しています...
投稿者は投稿を書くことができ、投稿者は他の投稿者の投稿を気に入ることができます...
したがって、投稿は著者に属しますが (著者が投稿した場合)、habtm 著者を投稿します (著者が彼らを愛している場合)。
たとえば、postlovers の数で並べ替えられ、過去 24 時間に作成された投稿を取得したいと思います。これが私のモデルと結合テーブルです:
表:lovedposts_postlovers id:INTlovedpost_id:INTpostlover_id:INT
ポストモデル
作者モデル