【发布时间】:2012-09-23 16:34:15
【问题描述】:
我有一篇有很多图片的帖子。在一个视图中,我有两个表单,一个带有标准的 post 字段,另一个用于将图片异步发送到pictures_controller,我的 JavaScript 仅接收带有新添加图片的 ID 的回调,尚未与父级关联。如何将 JavaScript 接收到的许多 ID 添加到 post 表单中的隐藏字段,并在 post_controller 循环中发送隐藏字段中的 ID 并将其与 post 模型相关联?我正在尝试从:How to use JQuery-File-Upload to upload multiple images on one page during creating post? 执行第 3 步(有趣的部分)。
帖子视图:
= 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>
【问题讨论】:
-
也发布您的“新”操作.... 505d80931e7bf2b8150000ac 看起来不像
ids -
在posts_controller 'new' 中,我只有
@post = Post.new,照片是通过javascript 通过photos_controller 从Post 表单异步添加的,它给出了IDs,就像来自mongodb 的505d80931e7bf2b8150000ac。这个例子我认为可以用普通的普通 SQL ID 来完成,如'12'、'13'等。
标签: javascript jquery ruby-on-rails ruby-on-rails-3 mongoid3