0

我正在努力实现以下目标:

当用户在表单中输入 5 位 ID 时www.something.com,用户将被重定向到www.something.com/obtain/(5 digit ID)

我知道手动输入 urlwww.something.com/obtain/(5 digit ID)会触发所需的操作,但我如何创建一个这样做的表单呢?

无论如何我可以做到这一点<%= form_tag .... %>吗?

耙路线具有以下条目

获取 /obtain/:pid(.:format) products#obtain {:id=>/\d+/}

目前在控制器中

  def obtain
    scrapy = Scraper.new

    @product = scrapy.scrape((params[:pid]))

    if @product
      redirect_to @product, notice: 'Product successfully updated'
    elsif
      redirect_to root_path, notice: 'Invalid product requested'
    end
  end
4

2 回答 2

0

如果您正在提交表单,您将有一个函数或一些代码来处理输入,即:至少提取 request.query 之类的:

$var = request.query("ID")

因此,在该代码执行完它的任务后,您所需要的只是一行用于重定向,例如:

whatever.redirect("www.something.com/obtain/" & $var
于 2013-03-16T23:42:27.907 回答
0

在您的视图中创建一个表单:

<%= form_tag({:controller=>"products", :action=>"obtain"}, :method => "get") do %>
        <%= text_field_tag(:pid) %>
        <%= submit_tag "Search with PID" %>
<% end %>

我不知道您的obtain操作是否由 a 触发get,但如果它不只是将其更改为触发的任何内容(发布,放置)。

于 2013-03-16T23:57:40.233 回答