繁体   English   中英

Rails:如何修复ActionView :: MissingTemplate错误?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM