0

我有一篇有很多图片的帖子。在一个视图中,我有两个表单,一个带有标准的 post 字段,另一个用于将图片异步发送到pictures_controller,我的 JavaScript 仅接收带有新添加图片的 ID 的回调,尚未与父级关联。如何将 JavaScript 接收到的许多 ID 添加到 post 表单中的隐藏字段,并在 post_controller 循环中发送隐藏字段中的 ID 并将其与 post 模型相关联?我正在尝试执行第 3 步(有趣的部分):如何在创建帖子期间使用 JQuery-File-Upload 在一个页面上上传多个图像?.

帖子视图:

= form_for @post do |f|
  .field
    = f.label :title
    = f.text_field :title
  .field
    = f.label :description
    = f.text_area :description
  = f.hidden_field :picture_ids
  .actions
    = f.submit 'Save'
= form_for @picture, :html => { :multipart => true, :id => "fileupload"  } do |f|
  = f.file_field :image, :multiple => true
  %ul.thumbnails.files

JavaScript(我不知道如何正确地将新收到的 id 添加到隐藏字段,开始时它只包含:)[]

$('#fileupload').fileupload({
...
  completed: function(e, data) {
    console.log(data.result[0].picture_id); //e.g. pure: 505e1d811e7bf2b815000139, 505d80181e7bf2b8150000ab etc.
    $("#post_picture_ids").val(data.result[0].picture_id);
  });
});

post_controller:

def create
  @post = Post.new(params[:post])
  #@post.picture_ids = params[:post][:picture_ids]
end

邮政:

{"utf8"=>"✓",
 "authenticity_token"=>"FZA1rg53Qc21MCkT4YMDdIrkttmiRmdoGhPC7HS8Fx8=",
 "notify"=>{"title"=>"",
 "description"=>"",
 "picture_ids"=>"505e1d811e7bf2b815000139"},
 "commit"=>"Save"}

Mongoid 抛出错误:undefined method 'compact' for #<Picture:0x007faf2513d810>

4

1 回答 1

1

如果你的posthas_manypictures映射,

那么你的创建控制器代码应该是

@post.picture_ids = params[:post][:picture_ids]

代替

@post.picture_ids = (Picture.find(received_post).id)

于 2012-09-22T12:40:42.353 回答