[英]Rails: How to fix the ActionView::MissingTemplate error?
我收到此错误:
Started POST "/submitEmailAddress" for 127.0.0.1 at 2015-03-13 15:29:26 +0100
Processing by OnepagerController#submitEmailAddress as JS
Parameters: {"utf8"=>"✓", "email"=>"testing@this.com", "commit"=>"OK, LET'S GO!"}
submitEmailAddress
Completed 500 Internal Server Error in 12ms
ActionView::MissingTemplate (Missing template onepager/submitEmailAddress, application/submitEmailAddress with {:locale=>[:en], :formats=>[:js, :html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in:
* "/Users/ola/.rvm/gems/ruby-2.2.0/gems/web-console-2.0.0/lib/action_dispatch/templates"
* "/Users/ola/Documents/RailsApps/newwp/app/views"
* "/Users/ola/.rvm/gems/ruby-2.2.0/gems/videojs_rails-4.6.1/app/views"
):
app/controllers/onepager_controller.rb:22:in `submitEmailAddress'
Rendered /Users/ola/.rvm/gems/ruby-2.2.0/gems/web-console-2.0.0/lib/action_dispatch/templates/rescues/missing_template.text.erb (0.3ms)
当我尝试使用此表单提交电子邮件时:
(在index.html.erb内部)
<div class="row">
<div class="col-md-6 col-md-offset-3 col-sm-6 col-sm-offset-3 col-xs-8 col-xs-offset-2">
<%= bootstrap_form_tag url: '/submitEmailAddress', remote: true, html: {class: 'emailForm'} do |f| %>
<%= f.email_field :email, hide_label: true %>
<%= f.submit "OK, LET'S GO!"%>
<% end %>
</div>
</div>
这是我的方法:
(在onepager_controller.rb内部)
def submitEmailAddress
puts "inside submitEmailAddress"
respond_to do |format|
format.html {redirect_to root_path}
format.js
end
end
这是我的路线:
(来自我的routes.rb )
root 'onepager#index'
post 'submitEmailAddress', to: 'onepager#submitEmailAddress'
关于如何解决此错误的任何想法吗?
您的控制器操作将format.js
作为响应,应呈现app/views/onepager/submitEmailAddress.js.erb
。 该模板不存在。 您应该创建它或有不同的响应。
最简单的响应是format.js { render nothing: true }
,但是您需要确定合适的方法。
您需要在app/views/onepager/submitEmailAddress.js.erb
创建视图模板。
由于您的控制器具有HTML格式的重定向,因此您不需要app/views/onepager/submitEmailAddress.html.erb
,但是如果您删除了该重定向,或者想支持不支持JavaScript的浏览器,则需要HTML模板也是如此。
删除remote: true
在您的表单中为remote: true
或创建app/views/onepager/submitEmailAddress.js.erb
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.