2017-02-13 8 views
0

これは私のhtml.erbファイルです..私は、このエラーにテンプレートが欠落している - レール

Template is missing Missing template pages/verify, application/verify with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in: * "/home/spritle/web-beerboard-menu/app/views" * "/var/lib/gems/2.3.0/gems/devise-4.2.0/app/views"

<%= form_tag({:controller=>"pages", :action=>"verify"}, method: :get) do %> 
    <div class="row"> 
    <div class=" col-lg-4 col-xs-4 col-sm-4 " > 
      <label for="q">Enter date of Birth</label> 
    </div> 
    </div> 
    <div class="row"> 
    <div class=" col-lg-4 col-xs-4 col-sm-4" > 
       <input id="dob" name="dob" type="date" class="form-control" required /> </div> 
    </div> 
    <div class="row"> 
    <div class=" col-lg-4 col-xs-4 col-sm-4" > 
       <%= submit_tag 'Go', name: nil %> </div> 
</div> 
    <% end %> 

を取得しています、これは私のコントローラファイル

def verify 
    currentdate = Time.now.strftime("%Y-%m-%d") 
    dateofb = Date.parse(params[:dob]).strftime("%Y-%m-%d") 
    date = (currentdate.to_date - dateofb.to_date).to_i 
end 
+1

どのラインが正確にエラーを投げていますか?コントローラからのスタックトレースを表示してください –

答えて

2

verifyアクションのpages/verify.htmlまたはpages/verify.jsを追加する必要があります。それはTemplate is missingと言います。

verifyメソッドの場合はテンプレートを追加するか、レンダー/リダイレクトを追加する必要があります。

0

であるあなたは、ページ#は検証呼び出し、サーバーは何らかの応答を返す必要があります。エラーは、返すものを指定していないことを示します。 ページ(render :action)をレンダリングしたいのですか?またはredirect_to some_path? あるいは、dobでいくつかのjsonを返すことができますか?その後、あなたはrender json: {date_of_birth: date}

1

to_dateであなたのコントローラのアクションを完了するために必要なの

ArgumentError: invalid date

変更CURRENT_DATEを引き起こしているdd/mm/yyyyの日付またはyyyy/mm/dd

currentdate = Time.now.strftime("%Y-%d-%m") 
currentdate.to_date 

しかしcurrent_dateyyyy-dd-mmフォーマットであるが必要です

currentdate = Time.now.strftime("%Y-%m-%d") 

また、

第二の問題は、エラーが日付の解析に関するものではありませんPagesController

0

現在のエラーは、テンプレートファイルの名前が原因です。 あなたのHTMLでどのファイルが表示されているのかはわかりませんが、確認のためにリンクしています。別のページからデータを送信していて、verify -actionで何かをしたい場合は、それを実行し、その後に表示されるverify.html.erbテンプレートか、'redirect_to or redirect_back in your verify`-action。

それが戻って、彼らは、フォーム提出(そして、(これはおそらく、しかし、何か他のものでなければなりません)root_pathにフォールバックする前に、どこから来たのかをユーザーに送信するには、次のようになります。

def verify 
    currentdate = Time.now.strftime("%Y-%m-%d") 
    dateofb = Date.parse(params[:dob]).strftime("%Y-%m-%d") 
    date = (currentdate.to_date - dateofb.to_date).to_i 
    redirect_back fallback_location: root_path 
end 

代替されますフォーム提出後にレンダリングするviews/pages/verify.html.erbを作成します。、この方法は、検証コントローラで

0

必要があります。

  • OKならば、いくつかの検証の種類と

    • を実行します。何かが(のようなデータを保存)、その後、他の
    • をリダイレクトします:書きます警告メッセージをフラッシュして[:警告]し、ユーザーが間違いを訂正できるビューにリダイレクトします。デフォルトでは

明示的なリダイレクトを提供しない場合、Railsは仮定(/に/ビュー/アプリケーションまたは/ビュー/ページ名verify.html.erbとページビューを見つけようとしますコントローラの名前はPage_controller.rbです)。

決して忘れない:あなたは、コントローラの新しいメソッドを追加し、その方法にフォームをリダイレクトする場合、明示的なリダイレクトを提供(失敗と成功)または特定のビューを作成して使用し、暗黙の命名規則を使用する必要があります

関連する問題