Rails: render ne fonctionne pas, get ' Template is missing`
je suis en train d'apprendre les guides des Rails. J'ai traversé les étapes, mais j'ai quand même fait une erreur.
 ma version Ruby est ruby 2.1.1p76 et les Rails version est 4.0.4.
 comme le guide l'indique, j'ai créé un Article Controller.
class ArticlesController < ApplicationController
  def new
  end
  def create
    render plain: params[:article].inspect
  end
end
je {"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:
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 visées ce problème.
5 réponses
Dans le render méthode plain l'option 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 template nommé articles/create comme vous êtes dans ArticlesController#create action. Évidemment, le modèle n'existe pas donc vous obtenez l'erreur Template is missing.
reportez-vous à la discussion sur ce sujet sur Github: Introduce render :plain et render :html, faire render :body comme alias de render :text
maintenant, pour utiliser le mentionnés ci-dessous syntaxe vous devez mettre à niveau vers Rails 4.1:
render plain: params[:article].inspect
 avec votre version actuelle de Rails 4.0.4, vous pouvez aller pour:
render text: params[:article].inspect
si vous voulez voir des informations textuelles de params [: article] sur votre page alors vous pouvez utiliser render text
essayez ceci
class ArticlesController < ApplicationController
  def new
  end
  def create
    render text: params[:article].inspect
  end    
end
Vous obtiendrez
{"title"=>"First article!", "text"=>"This is my first article."}
# i.e. your params(whatever params hash contains)
Vous n'avez pas besoin de template signifie que vous pouvez utiliser le rendu nothing: true
Essayez comme ceci:
class ArticlesController < ApplicationController
 def new
 end
 def create
  params[:article].inspect
  render nothing: true
 end
end
Veuillez consulter ce lien cliquez ici
Changer de Rails version dans votre Gemfile:
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.6'
puis courir:
bundle install
assurez-vous que votre version de Rails est maintenant > 4.1
vous pouvez lire à travers le documentation suivante.
le rendu de texte pur est le plus utile lorsque vous répondez à Ajax ou demandes de service web qui attendent autre chose que ce qui est approprié HTML.