Загрузка файла Ajax в Rails 3 не удалась с помощью remotipart gem
У меня проблемы с загрузкой Ajax-файлов в Rails 3.0.5 Ruby v 1.8.7 с использованием гема 'remotipart', '~> 0.4'. У меня есть успех с оповещениями, появляющимися, когда я удаляю if @asset.save? оператор в контроллере, но когда он там, файл js не вызывается. По некоторым причинам активы не сохраняются.
Есть идеи?
контроллер:
def create
@asset = Asset.new(params[:asset])
respond_to do |format|
if @asset.save
format.html
format.js
end
end
end
Посмотреть:
<%= form_for @asset, :remote => true, :html => {:multipart => true}, :id => "new_asset_form" do |f| %>
<%= render :partial => 'shared/error_messages', :locals => { :target => @asset } %>
<%= f.hidden_field :company_id, :value => current_company.id %>
<%= f.file_field :asset %>
<%= submit_tag 'Add', :class => 'submit' %>
<% end %>
Create.js.erb:
<%= remotipart_response do %>
// Display a Javascript alert
alert('success!');
<% if remotipart_submitted? %>
alert('submitted via remotipart')
<% else %>
alert('submitted via native jquery-ujs')
<% end %>
<% end %>
Терминал Журнал:
Started POST "/assets" for 127.0.0.1 at Thu May 10 14:45:40 -0400 2012
Processing by AssetsController#create as JS
Parameters: {"commit"=>"Add", "authenticity_token"=>"9TDxFQfTGrdz8gKti413FoIr1JUSwLGQQXv/tJQd+sY=", "utf8"=>"✓", "_"=>"", "asset"=>{"company_id"=>"5"}}
Company Load (0.5ms) SELECT `companies`.* FROM `companies` WHERE `companies`.`subdomain` = 'demo' LIMIT 1
User Load (0.7ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 295 AND (company_id = 5) LIMIT 1
CACHE (0.0ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 295 AND (company_id = 5) LIMIT 1
Rendered assets/create.js.erb (0.7ms)
Completed 200 OK in 182ms (Views: 8.9ms | ActiveRecord: 1.2ms)
Спасибо за любую помощь. Застрял на несколько часов.
1 ответ
Попробуйте обновить до последней версии Remotipart, находящейся здесь: http://os.alfajango.com/remotipart/