任意のより多くの間違った答えを防止するためのアップデート:豊富な多対多の関連付けのフォームをネストする方法は?
- 製品は
- 多くの製品イメージを持っている多くの製品と多くのシーン
- 製品がありますが、製品を作るために、各シーンのために一つの画像を持っています画像そのシーンに合わせ
オリジナルの質問:
私は、3番目のテーブル(ProductImages)を通して豊富な多対多の関係を持つ2つのテーブル(シーンと製品)を持っています。 ProductImagesには、scene_id、product_id、およびimageの3つのフィールドがあります。今度は、各シーンエンティティのProductフォーム内にProductImageのインスタンスのフォームをネストしたいと思います。
私は3つのシーンがあるとき、それぞれの製品フォームに3つの「イメージ」フィールドを表示したいと考えています。リレーションがまだ存在しない場合でも、3つのフィールドは常に表示されます。
誰かがこれを行う方法を教えてもらえますか?私は正しい関係を定義している(私は思う)、私は画像の添付ファイルのためのPaperclipプラグインを使用している。
更新
私のモデルは、ここでの考え方ですが、どのように見えるかを明確にする:
Scenes:
| id | name | background-image |
|----|-----------|--------------------|
| 1 | kitchen x | a picture |
| 2 | kitchen y | an other picture |
| 3 | kitchen z | just other picture |
Products:
| id | name | price | material |
|----|--------------|-------|----------|
| 1 | countertop x | 100 | wood |
| 2 | countertop y | 33 | metal |
| 3 | tap x | 95 | chrome |
ProductImages:
| id | product | scene | image |
|----|---------|-------|-----------|
| 1 | 1 | 1 | some pic |
| 2 | 1 | 2 | good pic |
| 3 | 1 | 3 | weird pic |
| 4 | 2 | 1 | a pic |
| 5 | 2 | 2 | one pic |
| 6 | 2 | 3 | other pic |
は、そして、私の目標は巣に製品の形の内部ProductImagesの画像フィールドのためのフォームです。
このメソッドをproducts_controller.rb
に追加しました。 "ep"編集しようとしている製品ですか?このメソッドは、編集メソッドの最初に呼び出されます。
def check_relation_with_scenes(ep)
Scene.all.each do |s|
ProductImage.find_or_create_by_product_id_and_scene_id(:product_id => ep.id, :scene_id => s.id)
end
end
「シーン」は実際に何かもっと説明してください。商品が掲載されている設定(写真)ですか?そして、 'ProductImages'テーブルの余分なイメージがクローズアップされますか?または、使用例のいくつかの種類ですか?私が正しく理解していれば、シーンごとに写真をアップロードすることができます:正しい? – nathanvda
シーンは実際に複数の製品が同時に表示される写真です。余分な画像はクローズアップではありません。各シーンには、角度が異なる可能性のある異なる写真と、稲妻があります。したがって、各シーンで同じ製品を正しく表示するには、実際に各シーンの各製品の写真があります。 –
3つの関連モデルのルビコードとそれらの関係も表示してください。 – dombesz