【问题标题】:missing a template for this request format and variant缺少此请求格式和变体的模板
【发布时间】:2016-10-12 22:46:28
【问题描述】:

我是 Ruby on Rails 的新手,正在努力深入了解 MVC 的工作原理。

我做了以下事情:

rails new bubblesman 
rails generate controller bubble

在我的气泡控制器中,我创建了一个方法如下:

def available
  puts "YEP!!!!!!"
end

我将以下内容放入我的路线文件中:

'welcome' => 'bubble#available'

我导航到http://localhost:3000/welcome 我收到以下错误:

ActionController::UnknownFormat (BubbleController#available is missing a template for this request format and variant.

request.formats: ["text/html"]
request.variant: []

NOTE! For XHR/Ajax or API requests, this action would normally respond with 204 No Content: an empty white screen. Since you're loading it in a web browser, we assume that you expected to actually render a template, not… nothing, so we're showing an error to be extra-clear. If you expect 204 No Content, carry on. That's what you'll get from an XHR or API request. Give it a shot.):

我也不明白的是,如果我把它放在我的辅助控制器而不是我的主控制器中,它一切正常。

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    您需要在views/bubble/ 目录中创建available.html.erb 文件。当路线将您带到该操作时,它还会将您导航到该视图,因此如果您输入:

    <h2>YEP!!!!</h2>
    

    作为该文件中的唯一行,它应该在网页上将其返回给您。

    将来,您可以使用rails g scaffold bubbles,这将为您创建大部分文件 (MVC) 和路由。

    【讨论】:

    • 有效。谢谢你。如果我想在控制器中使用多种方法,是否每次都需要一个新的 html.erb?
    • 我能想到的唯一方法是在每个控制器方法的末尾使用重定向来指向 available 显示方法。但在基本层面上,是的,对于大多数方法,您很可能需要一个 html.erb。
    • 谢谢。这实际上有很大帮助。我已经阅读了很多教程,但直到现在才真正掌握这部分内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多