フォームの入力を Rails アプリの特定のアクションにリンクしようとしています。
現在、 に移動するとwww.myapp.com/check/:idNumber
、アクションを正常にトリガーできます (つまり、ルートが適切に設定されているということですか?)。このアクションは基本的に、パラメーター「idNumber」が渡された ruby/rails スクリプトへの関数呼び出しです。関数が成功すると、新しく作成された "Person" オブジェクトが返され、それ以外の場合は nil が返されます。new
これは、別の場所のデータベースから取得した情報に基づいて属性を決定するため、標準操作とは異なります。
Rake ルートでは、次のことがわかります。
check /check/:idNumber(.:format) person#check {:id=>/\d+/}
実装に問題があるのは、フォーム自体です。
<%= form_tag("/check", :method => "get") do %>
<%= text_field_tag(:idNumber) %>
<% end %>
コントローラーのアクション:
def check
regCheck = RegCheck.new
@person = regCheck.check_id(params[:idNumber])
if @person.name == nil
redirect_to root_path
end
end
上記のフォームを送信すると、myapp.com/check?utf8=✓&idNumber=1234
代わりに が表示されます。誰かが私が間違っていることを教えてもらえますか?