0

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

我将方法放入目录 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 作为参数来解决这个问题;我见过的大多数示例都涉及使用表单进行的数据库查询。谢谢

4

1 回答 1

2

最简单的使用形式是这样的——首先,您需要一个表单可以提交到的路由:

# 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
于 2013-05-21T02:51:17.070 回答