0

私は多くの写真を含む 1 つの投稿を持っています。1 つのビューには 2 つのフォームがあり、1 つは標準の投稿フィールドを持ち、もう 1 つは非同期的に写真を pictures_controller に送信します。JavaScript で受け取った多くの ID を投稿フォームの非表示フィールドに追加し、post_controller ループで非表示フィールドから ID を送信した後、それを投稿モデルに関連付ける方法は? ステップ 3 (楽しい部分) を実行しようとしています: How to use JQuery-File-Upload to upload multiple images on one page during creating post? .

投稿ビュー:

= 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);
  });
});

ポストコントローラー:

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 に答える