如何使提交按钮调用函数?

时间:2015-03-18 18:40:21

标签: html ruby-on-rails ruby forms function

<%= 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

1 个答案:

答案 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方法必须在控制器中为您的表单所引用的对象定义。