我需要使用jquery-upload-rails將多張照片上傳到模型'house'的'new'形式。將多張照片上傳到belongs_to模型(jquery-fileupload-rails)
我使用:
- 軌道4
- 回形針寶石
- jQuery的文件上傳,軌寶石
我:
- 支架 '房子' (has_many上傳)
- 腳手架 '上傳'(對上傳的照片)(belongs_to的房子)
我可以:
- 創建直通支架房子新房子(無照片)
- 上傳照片直通支架與jquery-上傳文件上傳
我需要:
一個頁面,用戶輸入的一些信息房子(國家,城市,地址等),並使用jquery-fileupload選擇一些照片。當他按下「創建房屋」按鈕時,上傳照片並創建房屋。當然,新照片的上傳模式中的house_id列必須是剛剛創建的房屋的ID。
我的文件:
型號/ house.rb:
has_many :uploads accepts_nested_attributes_for :uploads, :allow_destroy => true
型號/ upload.rb
belongs_to :house has_attached_file :upload, :styles => { :large => "800x800", :medium => "400x400>", :small => "200x200>" } include Rails.application.routes.url_helpers def to_jq_upload { "name" => read_attribute(:upload_file_name), "size" => read_attribute(:upload_file_size), "url" => upload.url(:original), "delete_url" => upload_path(self), "delete_type" => "DELETE" } end
控制器/ houses_controller.rb:
一切標準,但params.require(:house).permit(..., uploads_attributes: [:upload, :house_id])
控制器/ uploads_controller.rb:
一切非標準,但加渲染JSON to_jq_upload的意見/添加/ house.html.erb
<%= form_for @house, :html => { :multipart => true, :id => "fileupload" } do |f| %> ...some inputs with house info... <input type="file" class="form-control" name="house[uploads_attributes][][upload]" id="upload_upload"> <table class="table table-striped"><tbody class="files" data-toggle="modal-gallery" data-target="#modal-gallery"></tbody></table> <% end %> ...script files...
所以現在我可以輸入一些信息,選擇一些照片,但有兩種方法:
如果我在照片附近按啓動上傳按鈕,此照片上傳,新房子創建,house_id也在它的位置。但是這僅僅是一張照片,當我點擊下一張照片上的開始上傳時,另一個房子是用這張照片創建的。
如果我按下'創建房子'按鈕,新房子的創建完全沒有任何照片。
所以我需要點擊'創建房子'按鈕照片上傳和新房子創建。
或者當我點擊照片旁邊的上傳照片時,它會上傳到模型中,但是在按下「創建家庭按鈕」後,會設置house_id。