簡體   English   中英

模板丟失-導軌

[英]Template is missing - rails

這是我的html.erb文件。

缺少模板缺少模板頁面/驗證,使用{:locale => [:en] 、: formats => [:html] 、: variants => [] 、: handlers => [:erb,:builder, :raw,:ruby,:coffee,:jbuilder]}。 在以下位置搜索:*“ / 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

該錯誤與日期解析無關。 它說Template is missing

您必須為您的verify方法添加模板或添加渲染/重定向。

to_date需要以dd/mm/yyyyyyyy/mm/dd

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

但是current_dateyyyy-dd-mm格式,這導致

ArgumentError:無效日期

將current_date更改為

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

也,

第二個問題是您需要添加pages/verify.htmlpages/verify.jsverify PagesController

您調用Pages#verify,服務器需要為您返回一些響應。 該錯誤表明您未指定要返回的內容。 也許您想渲染一些頁面( render :action )? 還是redirect_to some_path 或者,也許您想用dob返回一些json? 那么您需要使用render json: {date_of_birth: date}完成您的控制器操作render json: {date_of_birth: date}

您當前的錯誤是由模板文件的命名引起的。 我不知道您要用html顯示什么文件,但是您要鏈接進行驗證以及發布的操作。 如果您要從另一個頁面發送數據,並且想要在verify -action中執行某項操作,則必須這樣做,並且具有一個稍后將顯示的verify.html.erb模板,或者一個´redirect_to or in your verify-action in your redirect_back。

可能看起來像這樣,將用戶送回表單提交之前的來源(以及回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以在提交表單后呈現。

在控制器中,方法驗證應:

  • 執行某種驗證並

    • 如果可以:執行某些操作(例如保存數據),然后重定向
    • 否則:將警告消息寫到flash [:warn],然后重定向到用戶可以糾正其錯誤的視圖。

默認情況下,如果不提供顯式重定向,Rails會嘗試在/ views / application或/ views / pages /中找到名稱為verify.html.erb的頁面視圖(假設您的控制器名為Page_controller.rb)。

永遠不會忘記:當您在控制器中添加新方法並將表單重定向到該方法時,您需要提供顯式重定向(失敗和成功)或使用創建特定視圖並使用隱式名稱約定

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM