Ich lerne gerade Rails Guides. Ich ging die Schritte durch, stieß aber immer noch auf einen Fehler.
Meine Ruby-Version ist Ruby 2.1.1p76
und die Rails-Version ist 4.0.4
.
Wie in der Anleitung angegeben, habe ich einen Article Controller
erstellt.
class ArticlesController < ApplicationController
def new
end
def create
render plain: params[:article].inspect
end
end
Ich sollte {"title"=>"First article!", "text"=>"This is my first article."}
bekommen, aber die Ausgabe stellte sich heraus
Template is missing
Missing template articles/create, application/create with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :Ruby, :jbuilder, :coffee]}.`
Hier sind meine verwandten Routen:
articles GET /articles(.:format) articles#index
POST /articles(.:format) articles#create
Update: render plain:
ist eine neue Methode, die in Rails 4.1.0
auf dieses Problem verweist.
In der render
-Methode wurde die plain
-Option in Rails 4.1
hinzugefügt, und Sie verwenden Rails 4.0.4
. Daher hat Rails diese Option ignoriert und nach einer Vorlage mit dem Namen articles/create
gesucht, während Sie sich in der Aktion ArticlesController#create
befinden. Offensichtlich ist die Vorlage nicht vorhanden, daher wird der Fehler Template is missing
angezeigt.
Weitere Informationen finden Sie in der Diskussion zu diesem Thema unterGithub: Führen Sie render :plain
und render :html
ein, und stellen Sie render :body
als Alias für render :text
ein.
Für die Verwendung der unten genannten Syntax müssten Sie ein Upgrade auf Rails 4.1
durchführen:
render plain: params[:article].inspect
Mit Ihrer aktuellen Version von Rails 4.0.4
können Sie Folgendes erreichen:
render text: params[:article].inspect
Wenn Sie Textinformationen zu params [: article] auf Ihrer Seite anzeigen möchten, können Sie render text
verwenden.
versuche dies
class ArticlesController < ApplicationController
def new
end
def create
render text: params[:article].inspect
end
end
Sie erhalten
{"title"=>"First article!", "text"=>"This is my first article."}
# i.e. your params(whatever params hash contains)
Sie brauchen keine Vorlage, dh Sie können nichts verwenden: true
Versuchen Sie es so:
class ArticlesController < ApplicationController
def new
end
def create
params[:article].inspect
render nothing: true
end
end
Bitte beziehen Sie sich auf diesen Link klicken Sie hier