J'apprends actuellement les guides Rails. J'ai franchi les marches mais j'ai quand même rencontré une erreur.
Ma version de Ruby est Ruby 2.1.1p76
et la version de Rails est 4.0.4
.
En tant que guide dirigé, j'ai créé un Article Controller
.
class ArticlesController < ApplicationController
def new
end
def create
render plain: params[:article].inspect
end
end
Je devrais obtenir {"title"=>"First article!", "text"=>"This is my first article."}
mais la sortie s’est avérée être
Template is missing
Missing template articles/create, application/create with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :Ruby, :jbuilder, :coffee]}.`
Voici mes itinéraires connexes:
articles GET /articles(.:format) articles#index
POST /articles(.:format) articles#create
Mise à jour: render plain:
est une nouvelle méthode introduite dans Rails 4.1.0
faisant référence à ce problème .
Dans la méthode render
, l'option plain
a été ajoutée dans Rails 4.1
et vous utilisez Rails 4.0.4
. Donc, Rails a ignoré cette option et a commencé à chercher un modèle nommé articles/create
puisque vous êtes dans l'action ArticlesController#create
. De toute évidence, le modèle n'existe pas et vous obtenez l'erreur Template is missing
.
Reportez-vous à la discussion à ce sujet surGithub: Introduisez render :plain
et render :html
, transformez render :body
en alias en render :text
Maintenant, pour utiliser la syntaxe mentionnée ci-dessous, vous devez passer à Rails 4.1
:
render plain: params[:article].inspect
Avec votre version actuelle de Rails 4.0.4
, vous pouvez choisir:
render text: params[:article].inspect
Si vous voulez voir les informations textuelles de params [: article] sur votre page, vous pouvez utiliser render text
essaye ça
class ArticlesController < ApplicationController
def new
end
def create
render text: params[:article].inspect
end
end
Tu auras
{"title"=>"First article!", "text"=>"This is my first article."}
# i.e. your params(whatever params hash contains)
Vous n'avez pas besoin de modèle signifie que vous ne pouvez utiliser aucun rendu: true
Essayez comme ça:
class ArticlesController < ApplicationController
def new
end
def create
params[:article].inspect
render nothing: true
end
end
S'il vous plaît se référer ce lien cliquez ici