ちょっとした場所で、Railsのことは初めてです。
モデルの 1 つは、has_many/belongs_to 関連付けで他のモデルに依存しています。
基本的に、アプリケーションで「投稿」を作成する場合、ユーザーは「画像」も添付できます。理想的には、これらは 2 つの別個のモデルです。ユーザーが写真を選択すると、一部の JavaScript がそれを Cloudinary にアップロードし、返されたデータ (ID、幅、高さなど) は JSON 文字列化され、隠しフィールドに設定されます。
# The HTML
= f.hidden_field :images, :multiple => true, :class => "image-data"
# Set our image data on the hidden field to be parsed by the server
$(".image-data").val JSON.stringify(images)
そしてもちろん、関係は私の Post モデルに存在します
has_many :images, :dependent => :destroy
accepts_nested_attributes_for :images
と私の画像モデル
belongs_to :post
Post コントローラの create メソッドでシリアライズされた画像データをどうするか迷っています。JSON を解析して保存するだけでは、保存時にデータを使用して画像モデルが作成されません (そして、正しくないと感じます)。
params[:post][:images] = JSON.parse(params[:post][:images])
これらはすべて、基本的に次のパラメータのようなものになります。
{"post": {"title": "", "content": "", ..., "images": [{ "public_id": "", "bytes": 12345, "format": "jpg"}, { ..another image ... }]}}
このプロセス全体は少し複雑に思えます -- どうすればいいですか? また、最初にやろうとしていることを行うためのより良い方法はありますか? (また、このようなネストされた属性には強力なパラメーターが必要ですか...?)
編集:
この時点で、次のエラーが発生しました。
Image(#91891690) expected, got ActionController::Parameters(#83350730)
この線から来る...
@post = current_user.reviews.new(post_params)
ネストされた属性から画像を作成していないようですが、期待されています。( :autosave があるかどうかに関係なく同じことが起こります)。