Hao*_*Tan 25 ruby ruby-on-rails ruby-on-rails-4
我目前正在学习Rails指南.我经历了这些步骤,但仍然遇到了一个错误.
我的Ruby版本是ruby 2.1.1p76和Rails版本4.0.4.
作为指导,我创建了一个Article Controller.
class ArticlesController < ApplicationController
def new
end
def create
render plain: params[:article].inspect
end
end
Run Code Online (Sandbox Code Playgroud)
我应该得到{"title"=>"First article!", "text"=>"This is my first article."}但输出结果是
Template is missing
Missing template articles/create, application/create with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}.`
Run Code Online (Sandbox Code Playgroud)
这是我的相关路线:
articles GET /articles(.:format) articles#index
POST /articles(.:format) articles#create
Run Code Online (Sandbox Code Playgroud)
更新:引用此问题时render plain:引入的新方法.Rails 4.1.0
Kir*_*rat 46
在该render方法中,plain添加了选项Rails 4.1并且您正在使用Rails 4.0.4.因此,rails忽略了此选项,并开始寻找一个名为articles/create您正在运行的模板ArticlesController#create.显然,模板不存在,因此您得到错误Template is missing.
请参阅Github上关于此主题的讨论:介绍render :plain和render :html,render :body作为别名render :text
现在,要使用下面提到的语法,您需要升级到Rails 4.1:
render plain: params[:article].inspect
Run Code Online (Sandbox Code Playgroud)
使用您当前的版本Rails 4.0.4,您可以选择:
render text: params[:article].inspect
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10087 次 |
| 最近记录: |