使用表单和按钮在视图中调用方法

时间:2013-05-21 02:36:52

标签: ruby-on-rails ruby-on-rails-3

初学者问题在这里。我创建了一个Web scraper来为我的模型填充信息,我想用一个视图中的按钮调用这个方法。更重要的是,我想将表单的内容作为参数传递给此方法。我有点迷失在如何使用表格,但到目前为止,我有:

我将该方法放入app / helpers / admin_pages_helper.rb目录

module AdminPagesHelper
  def populate(term)
  .
  .
  end
end

然后我在app / views / admin_pages / index.html.erb

上有一个视图

我不确定如何使用form_tag / text_field_tag / submit_tag来获取参数;我见过的大多数示例都涉及使用表单的数据库查询。感谢

1 个答案:

答案 0 :(得分:1)

最简单的使用形式是这样的 - 首先你需要一个表格可以提交给的路线:

# in your routes.rb
match "/admin_pages/my_action" => "admin_pages#my_action", as: "my_admin_pages_action"

这会将请求路由到“/ admin_pages / my_action”到AdminPagesController中的“my_action”操作。它还为您提供了几种辅助方法,您可以使用这些方法在视图和/或控制器中构建此URL字符串。

# in your view
<%= form_tag my_admin_pages_action_path do |f| %>
  <%= text_field_tag :term %>
  <%= submit_tag "Submit" %>
<% end %>

提交此表单后,它将路由到AdminPagesController#my_action方法:

class AdminPagesController < ApplicationController
  def my_action
    term = params[:term]          # this contains the contents of the text_field
    something = populate(term)    # call your helper method passing in the term
  end
end