有点新的Rails的东西,在一点点。在Rails 4中保存嵌套模型
其中一个模型的处于的has_many/belongs_to的关联取决于其他。
基本上,我的应用程序中创建一个“邮报”时,用户可以还附上“图像”。理想情况下,这是两个独立的模型。当用户选择一张照片时,一些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)
和当然,这种关系在我的岗位模型
has_many :images, :dependent => :destroy
accepts_nested_attributes_for :images
和我的形象模型存在
belongs_to :post
在哪里我迷路是做什么用的序列化的图像数据做在Post控件的创建方法上?简单地解析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)
好像它没有创造从嵌套属性的图像,但它的预期。 (同样的事情发生时:自动保存是否存在)。
我有完全相同的问题 – nduplessis
MB可以帮助http://stackoverflow.com/questions/10878930/got-activerecordassociationtypemismatch-on-model-save – user2915517