Rails 3:フォームの提出 - Textfield as:idの設定

私は1つのテキストフィールドと送信ボタンを持つ単純なページを持っています。ユーザーが文字列を入力できるようにして、送信ボタンを使用してユーザーを特定のページに誘導します。テキストフィールドは:idというURLにあります。

たとえば、ユーザーが「test」と入力した場合、submitをクリックすると、彼は「/ controller/action/test」に送信されます。

これは可能ですか?私は試した:

<%= form_tag :controller => "myController", :action => "myAction", :id => :textFieldName do %> ...

しかし、それは動作しません。 (私はそう思わなかった。)

ありがとう

0

2 答え

あなたはJavascriptを使う必要があります。最も単純な形式

$('form').submit(function() {
  $(this).attr('action') = '/url/prefix/' + $(this).find('input#the_field').val();
  return true;
});

そして、ハンドラが返され、フォームは新しいURLに送信されます。

フィールドの内容も検証/正規化する必要があります。

0
追加された

あなたが試みることができる...

フォームタグのIDを設定しないでください。代わりに、 params ハッシュからテキストフィールドの値をリダイレクト先として指定します。

つまり、ビューで...

<% text_field_tag :id => "test_value" ... %>

とコントローラで...

redirect_to "/action/" + params[:test_value]
0
追加された