#質問
form_withを使ってitemテーブルにデータを保存し、
画像のみitem_imageテーブルへ保存したいと考えています。
その際、fields_forを使用しているのですが、送ることが出来ず
エラー表示もされないため原因も掴めません。(itemテーブルへ他データの保存は行えます)
下記に当該箇所コードを記載しますので、解決方法をご教授頂けたらと思います。
以上、宜しくお願い致します。
new.html.haml
.items = form_with model: @item,local: true do |f| .items__box .items__box--list %p.name 出品画像 %p.need 必須 .items__box--image = f.fields_for :item_images,@item.item_images.build do |i| %label{class: "input-box__image"} %i.fa.fa-camera = item_image.file_field :image %input{type: "file"} %input{type: "file"} %p クリックしてファイルをダウンロード %p 画像がありません
マイグレーションファイル
class CreateItemImages < ActiveRecord::Migration[6.0] def change create_table :item_images do |t| t.string :image t.references :item,null:false,foreign_key:true t.timestamps end end end
items_controller.rb
class ItemsController < ApplicationController def index @items = Item.all end def new @item = Item.new @item.item_images.build end def create @item = Item.create(item_params) @item.save redirect_to root_path end private def item_params params.require(:item).permit(:name, :description,:brand,:condition,:shipping_area,:shipping_method,:shipping_data,:price,:user,:seller,:buyer,item_image_attributes: [:image]) end end
item_image.rb
class ItemImage < ApplicationRecord belongs_to :item end
item.rb
class Item < ApplicationRecord extend ActiveHash::Associations::ActiveRecordExtensions has_many :item_images accepts_nested_attributes_for :item_images end
送信時のターミナル
Parameters: {"authenticity_token"=>"M1ivPeCElTFGwdUCzs33xCWY+lfMHga412dtZL1H1acyfA2giylXaQR39Q10Mjj7A8uJn1luEY6jfa5dQ9W+4A==", "item"=>{"item_images_attributes"=>{"0"=>{"image"=>#<ActionDispatch::Http::UploadedFile:0x00007f8cc35e27f0 @tempfile=#<Tempfile:/var/folders/9z/x6gm4xc952bf07dpsjws794h0000gn/T/RackMultipart20200903-38634-g0fgfi.jpg>, @original_filename="猫.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"item[item_images_attributes][0][image]\"; filename=\"\xE7\x8C\xAB.jpg\"\r\nContent-Type: image/jpeg\r\n">}}, "name"=>"仮", "description"=>"test", "shipping_method"=>"1", "brand"=>"aa", "condition"=>"1", "shipping_area"=>"2", "shipping_data"=>"2", "price"=>"11"}, "commit"=>"出品する"}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/03 22:15