我有一个表单总是将表单提交给控制器中的“更新”功能,我使用“remote_form_for”标签创建了这个表单。在这个表单中,我有来自不同表的对象,从这个表单我想通过AJAX请求将整个表单数据提交给另一个函数(而不是“更新”函数)。
我尝试了很多方法,包括使用提交标记和操作
<% remote_form_for @employee, :url => organization_employee_path(@organization, @employee), :method => :put do |employee_form| %>
// form objects and other functionalities
....
....
// views inside the forms
<div id="employee_header_div">
<%= render :partial => "employee_header", :locals => {:employee => @employee} %>
</div>
...
...
<%= submit_tag "page_level_validation", :id => "page_level_validation" , :action=>"validate"%>
<% end %>
但是Ajax请求总是调用相同的“更新”功能。
如果有人帮助解决此问题,那将非常有帮助。
答案 0 :(得分:0)
您不能将提交设置为指向与主窗体指定的位置不同的位置(除非您要使用HTML5格式属性并处理浏览器兼容性后果)。
但是,你可以做的是在你的控制器中创建一个新的动作来处理这种情况。
例如..
<% remote_form_for @employee, :url => organization_employee_validate_path(@organization, @employee), :method => :put do |employee_form| %>
控制器中的
def validate
#do something loosely based around the update method
end
不要忘记添加适当的路线。
答案 1 :(得分:-1)
试试这个:
<% form_for @employee, :remote => true, :url => organization_employee_path(@organization, @employee), :method => :put do |employee_form| %>