我的代码
respond_to :js
def create
@user = .......
respond_with @user if @user.save
end
而 views/users 文件夹下,只有 create.js.erb,里面有一句代码 alert('aaaaa');
但是提交表单后,最后跳转是跳转去了 localhost/users
没触发 alert,没渲染到 create.js.erb 文件,
请问哪里错误了?
View:
<%= form_for @microphoto, :remote => true, :html => {:multipart => true} do |f| %>
<div class="modal-body">
<%= f.file_field :photo %>
</div>
<div class="modal-footer">
<%= f.submit "上传", :class => 'btn primary' %>
</div>
<% end %>
Controller:
def create
@microphoto = current_user.microphotos.build(params[:microphoto])
@microphoto.save
render(:json => @microphoto.to_json, :layout => false)
end
上面 render 这里乱写的,应为不断在测试 route.rb
resources :microphotos, :only => [:create, :index]
@huacnlee 视图文件夹下只有 create.js.erb 一个文件,index 的 action 我是直接返回 json 的,我不明白就是,一提交,他一定会转到 localhost/microphotos
@huacnlee 加了,有的! //= require jquery //= require jquery-ui //= require jquery_ujs //= require autocomplete-rails //= require_tree .
@huacnlee 我把 form 的 remote => true 去掉,提交后的效果一样,是不是证明 remote => true 失效了,但是我看源代码,有生成 data-remote="true"
实在太无聊了!!!原生的文件上传不能用 remote,只能自己写,或者用插件!推荐插件https://github.com/leppert/remotipart