0

私は次のことを達成しようとしています:

ユーザーが のフォームに 5 桁の ID をwww.something.com入力すると、ユーザーは にリダイレクトされwww.something.com/obtain/(5 digit ID)ます。

URL を手動で入力するwww.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アクションがでトリガーされるかどうかはわかりませんが、トリガーgetされるものに変更するだけではありません(post、put)。

于 2013-03-16T23:57:40.233 に答える