2017-07-07 10 views
0

HTMLフォームの入力テキストを使用してSQLiteデータベースを照会するにはどうすればよいですか?HTMLフォームで入力したテキストをSQLiteデータベースに照会するにはどうすればよいですか?

私はRuby on Rails(2〜3日間)の新機能を覚えています。

ユーザに数字を入力してから入力してもらうために、私は自分のSQLiteデータベースを検索し、結果を変数に戻したいと思います。私はRuby on Railsプロジェクトで働いています。私のhome.html.erbファイルのコードは次のとおりです。

<form name="myform" action="" method="get"> 

    <input type="text" name="CardNumber" onkeypress="if(event.keyCode==13) {javascript:form.submit();> 
    <input type="submit" onClick="javascript:form.submit();"/> 
    <br> 
</form> 

<br> 
<br> 

<script type="text/javascript" language="JavaScript"> 
document.forms['myform'].elements['CardNumber'].focus(); 
</script> 

答えて

0

まず、私はあなたの代わりにgetpostをしたいと思います。次に正しいルートにactionを指す必要があります。

通常、レールでは、フォームでビューをレンダリングするアクションでインスタンス化されるモデルオブジェクトがあります。それはコントローラ#新しいアクションで、新しいユーザーを作成するためのフォームの場合と同様に、あなたのようなものがあります:ビュー上で、その後

def new 
    @user = User.new 
end 

をあなたは@userをインスタンス化しているので、あなたが<%= form_for(@user) ... %> があるでしょう、のform_forになりますそのオブジェクトにパラメータを渡すと、パスとアクションを正しくレンダリングできます。マルチパートなのか何か他のものなのかどうかはわかりませんが、ルーティングの根拠になります。

しかし、それは明らかに必要ではありません。あなたのサンプルに戻ります。

payments_controller.rb 

def save_cc 
    cc_number_from_form = params[:CardNumber] 
end 

ですからparamsに(限り、彼らが正しく命名しているとして)自分のフォームフィールドにアクセスできるようになります: あなたが次にコントローラルート

post "save_payment_info", to: "payments#save_cc", as: :cc_save

を持っている想像してみてコントローラー内のハッシュ

同じことをAjaxで行い、JSONレスポンスなどを返すことができます。

+0

これは、おもしろいことでした。 –

関連する問題