这是我的html.erb文件..我收到此错误
缺少模板缺少模板页面/验证,应用程序/验证 with {: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
答案 0 :(得分:2)
错误与解析日期无关。它说Template is missing
。
您必须为verify
方法添加模板或添加渲染/重定向。
答案 1 :(得分:1)
to_date
需要dd/mm/yyyy
或yyyy/mm/dd
currentdate = Time.now.strftime("%Y-%d-%m")
currentdate.to_date
但current_date
采用yyyy-dd-mm
格式导致
ArgumentError:无效日期
将current_date更改为
currentdate = Time.now.strftime("%Y-%m-%d")
此外,
第二个问题是,您需要为pages/verify.html
pages/verify.js
行动添加verify
或PagesController
答案 2 :(得分:0)
您调用Pages#verify并且服务器需要为您返回一些响应。错误表明您没有指定要返回的内容。
也许你想渲染一些页面(render :action
)?还是redirect_to some_path
?
或许你想用dob返回一些json?然后你需要用render json: {date_of_birth: date}
答案 3 :(得分:0)
您当前的错误是由模板文件的命名引起的。
我不知道你用html显示的文件是什么,但你要链接验证,以及你发布的动作。如果您要从其他网页发送数据,并希望在verify
- 操作中执行某项操作,则必须执行此操作,并且要么具有以后显示的verify.html.erb模板,或'redirect_to or
redirect_back in your
验证`操作。
看起来像是这样,在表单提交之前将用户发回到他们来自的地方(并回退到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
。
答案 4 :(得分:0)
在控制器中,方法验证应该:
执行某种验证并
默认情况下,如果您不提供显式重定向,Rails将尝试在/ views / application或/ views / pages /中找到名称为verify.html.erb的页面视图(假设您的控制器名为Page_controller。 RB)。
永远不要忘记:当您在控制器中添加新方法并将表单重定向到该方法时,您需要提供显式重定向(失败和成功)或使用创建特定视图并使用隐式名称约定。