Chr*_*ton 20 ajax jquery ruby-on-rails ruby-on-rails-3
基本上,当我在表单中包含并使用文件上传器时,它似乎取消了:remote => true功能,并将操作作为HTML代替JS处理.有任何想法吗?
sim*_*aob 13
我刚刚面临同样的问题,并发现以下替代方案使其工作:
Gem remotipart => http://www.alfajango.com/blog/rails-3-ajax-file-uploads-with-remotipart/
jQuery插件'jaxy'=> https://github.com/adamlogic/jquery-jaxy
我想我更喜欢第一种选择.但是有选择权是件好事.=)
你不能通过AJAX上传文件,所以显然你的请求是纯HTML,因为你没有特定的东西:js和rails认为它只是一个简单的HTML POST请求.
https://github.com/JangoSteve/remotipart
gem 'remotipart', '~> 1.2'
Run Code Online (Sandbox Code Playgroud)
然后 bundle install
//= require jquery.remotipart
Run Code Online (Sandbox Code Playgroud)
sample_layout.html.erb
<%= form_for @sample, :html => { :multipart => true }, :remote => true do |f| %>
<div class="field">
<%= f.label :file %>
<%= f.file_field :file %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
在控制器中
def create
respond_to do |format|
if @sample.save
format.js
end
end
end
Run Code Online (Sandbox Code Playgroud)
create.js.erb
// Display a Javascript alert
alert('success!');
<% if remotipart_submitted? %>
alert('submitted via remotipart')
<% else %>
alert('submitted via native jquery-ujs')
<% end %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9574 次 |
| 最近记录: |