2017-07-02 2 views
1

Ich bin am Anfang meiner Karriere als Ruby on Rails Entwickler Ich lese online ein Buch mit dem Namen "Ruby on Rails Tutorial (Rails 5) Lernen Web-Entwicklung mit Rails " Ich habe eine 'Hallo Welt' App nach den Buchanweisungen gemacht.railstutorial Rubin auf Schienen Fehlende Vorlage im Tutorial

app/controllers/application_controller.rb

class ApplicationController < ActionController::Base 

    protect_from_forgery with: :exception 

    def hello 
    render text: "hello world!" 
    end 

end 

config/routes.rb

Rails.application.routes.draw do 

    root 'application#hello' 

end 

Jetzt erhalte ich, dass Fehler

Fehlende Vorlage Anwendung/Hallo mit {: locale => [: en], : Formate => [: html],: Varianten => [],: Handler => [: roh,: erb,: html,

: Erbauer,: Rubin,: Kaffee,: jbuilder]}. Gesucht in: app_path/app/views

Ich habe

/app/view/layouts/application.html.erb

in meinem Projekt, so dass theoretisch sein sollte Ansicht, sollte es nicht?

Also fehlt mir etwas? Wie könnte ich es beheben?

+0

Ich bin kein Experte, aber es scheint, es könnte veraltet sein, das heißt, es ist veraltet https://stackoverflow.com/questions/43428991/what-to-use-instead-of-render-text-and-render-nothing- true-in-rails-5-1 und zu rendern plain – barlop

Antwort

2

Fehlende Vorlage application/hallo mit {: locale => [: en], : Formate => [: html]: Varianten => []: Handler => [: roh,: erb, : html,: Erbauer,: Rubin,: Kaffee,: jbuilder]}. Gesucht in: app_path/app/views

Neben @Sujan Adiga Antwort, misdirect render :text Menschen zu denken, dass es Inhalt mit text/plainMIME-Typ machen würde. render :text setzt jedoch den Antworttextkörper direkt und erbt die Standardantwort MIME-Typ, die text/html ist. So Rails versucht, die HTML-Vorlage zu finden und spuckt mit diesem Fehler aus, wenn nicht gefunden werden kann.

Um dies zu vermeiden, können Sie entweder content_type Option verwenden, um den MIME-Typ-text/plain oder nur render :plain

render text: "hello world!", content_type: 'text/plain' 

oder

render plain: "hello world!" 
+0

Ich kann nicht bekommen 'render text: "hallo welt!", content_type:' text/plain'' zu arbeiten, bekomme ich den gleichen fehler wie ohne die ' content_type: "text/plain" 'Argument, aber ich habe gehört, dass Render-Text ohnehin veraltet ist. Wie hier erwähnt https://stackoverflow.com/questions/43428991/what-to-use-instead-render-text-and-render-nothing-true-in-rails-5-1 Ich finde 'render plain 'funktioniert für mich. – barlop

2

Versuchen

render plain: "hello world!" 

wenn Sie render text: ... tun, versucht es Vorlage mit dem Namen hello.erb|haml|jbuilder|... und übergibt text= "hello world!" als Daten zu machen.

Ref

0
render html: "hello, world!" 

das tun verwenden einstellen Job