2012-09-22 2 views
0

많은 사진이있는 게시물이 하나 있습니다. 하나의 견해에서 표준 포스트 필드와 비동기식 그림을 pictures_controller로 보내는 두 가지 양식이 있는데, 자바 스크립트는 새로 추가 된 그림의 ID로만 콜백을 받지만 아직 부모와 연관되어 있지 않습니다. 게시물 양식에 숨겨진 필드에 많은 수의 자바 스크립트 ID를 추가하는 방법과 숨겨진 필드에서 ID를 통해 post_controller 루프를 보낸 후 포스트 모델과 연결하는 방법은 무엇입니까? 3 단계 (재미있는 부분)를 수행하려고합니다 : How to use JQuery-File-Upload to upload multiple images on one page during creating post?.숨겨진 필드에 ID를 추가하고 컨트롤러에 다른 데이터와 함께 보내 부모 모델과 연결할 수있게하는 방법은 무엇입니까?

포스트보기 :

= 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 

자바 스크립트 (내가 숨겨진 필드에 제대로 새로 수신 된 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>

+0

'새로운'조치도 게시합니다. 505d80931e7bf2b8150000ac은'ids'처럼 보이지 않습니다. –

+0

posts_controller 'new'나는 '@post = Post.new' 만 고정 시켰습니다. 사진은 비동기 적으로 추가됩니다. 자바 스크립트에 의해 게시물 양식에서 photos_controller를 통해 mongodb에서'505d80931e7bf2b8150000ac'와 같은 ID를 제공합니다. 이 예제에서는 '12 ','13 '등의 일반 일반 SQL ID로 수행 할 수 있다고 생각합니다. – roza

답변

1

당신의 post has_many pictures 매핑하는 경우,

은 다음 생성 컨트롤러 코드가

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

대신

해야한다