ajb*_*aus 7 ajax ruby-on-rails form-for nested-form-for ruby-on-rails-3.2
无法获得ajax form_for以尊重format.js respond_to仅响应format.html.任何帮助非常感谢.
视图
此视图由AJAX部分调用,然后用户提交表单.初始的ajax调用会混淆这个表单的'remote:true'吗?
<%= form_for([@nested, @nested.resources.new], remote: true) do |i|%>
<%= i.hidden_field :inviter_id, value: current_user.id %>
<%= i.hidden_field :fb_pic_url, value: f['pic_square'] %>
<%= i.hidden_field :name, value: f['name'] %>
<%= i.hidden_field :uid, value: f['uid'] %>
<%= i.submit "Invite", class:"btn btn-success invite_button" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
的routes.rb
resources :nested do
resources :resources
end
Run Code Online (Sandbox Code Playgroud)
调节器
def create
code code code
respond_to do |format|
format.html { redirect_to @nested, notice: "Successfully Posted Nested" }
format.json { render json: @nested, status: :created, location: @nested }
format.js { render :nothing => true }
end
end
Run Code Online (Sandbox Code Playgroud)
create.js.erb 存在但空
application.html
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
Run Code Online (Sandbox Code Playgroud)
的application.js
//= require jquery
//= require jquery_ujs
Run Code Online (Sandbox Code Playgroud)
确保包含 Rails 内置非侵入式 jquery 插件,因为它负责使remote: true
代码正常工作。
另外,如果你想渲染模板,create.js.erb
你需要保留format.js
没有块的行:
respond_to do |format|
...
format.js
end
Run Code Online (Sandbox Code Playgroud)
除此之外,您还使用其他响应格式吗?json
和html
?如果没有,请尽量避免放置它们。
归档时间: |
|
查看次数: |
1785 次 |
最近记录: |