将搜索表单链接到特定URL

时间:2013-03-16 23:21:41

标签: ruby-on-rails forms search

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

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

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

无论如何,我可以用<%= form_tag .... %>来实现这个目标吗?

Rake路线有以下条目

  

获取/obtain/:pid(.:format)产品#获得   {:ID =&GT; / \ 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

2 个答案:

答案 0 :(得分:0)

如果您要提交表单,您将有一个函数或一些代码来处理输入,即:至少提取request.query就像:

$var = request.query("ID")

所以在代码执行了它的任务之后你需要的是一个重定向的行,如:

whatever.redirect("www.something.com/obtain/" & $var

答案 1 :(得分:0)

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

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

我不知道你的obtain动作是否是由get触发的,但如果它不仅仅是将其更改为触发的任何动作(post,put)。