<%= form_tag('add_person', method: 'get') do %>
<%= label_tag(:name, 'Name') %>
<%= text_field_tag(:name) %>
<%= submit_tag 'Add new person' %>
<% end %>
<%= def add_person
if params[:name] == "John")
enter code here
else
enter code here
end
end %>
如何让提交按钮调用add_person函数?我正在使用Ruby / Rails
答案 0 :(得分:3)
通过提交按钮调用一个或多个方法:
form_tag帮助程序确定要调用的控制器方法:
<%= form_tag('controller/controller_method', method: 'put') do %>
submit_tag将值传递给控制器进行评估。
<%= submit_tag "Add Person" %>
在控制器中,您可以根据提交按钮传递的值进行分支:
def controller_method
if params[:commit] == "Add Person"
add_person
elsif params[:commit] == "Method 2"
method_2
elsif params[:commit] == "Method 3"
method_3
end
end
通过任意按钮调用方法
您可能在表单底部有这样的内容:
<div class="actions">
<%= f.submit %>
</div>
可以用button_to
助手替换,如下所示:
<%= button_to "Submit", :method=> 'add_person' %>
您的add_person
方法必须在控制器中为您的表单所引用的对象定义。