【发布时间】:2013-10-16 15:13:31
【问题描述】:
尝试编写应该是一个简单的 RSpec 测试,并设置我的创建操作来呈现 JSON,如下所示:
require 'spec_helper'
describe CommentsController do
let(:valid_attributes) do
{
title: 'First Comment', comment_text: 'LoremIpsum', commentable_id: 1,
user_id: 1, entered_by: 'john', last_updated_by: 'doe'
}
end
context 'JSON' do
describe 'POST create' do
describe 'with valid params' do
it 'creates a new Comment' do
json = {:format => 'json', :comment => valid_attributes}
post :create, json
end
it 'assigns a newly created comment as @comment' do
json = {:format => 'json', :comment => valid_attributes}
post :create, json
assigns(:comment).should be_a(Comment)
assigns(:comment).should be_persisted
end
end
end
end
end
但是我得到以下输出:
ActionView::MissingTemplate: Missing template comments/create, application/create with {:locale=>[:en], :formats=>[:json], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee, :haml]}. Searched in:
【问题讨论】:
-
不太确定具体问题的根本原因,但我建议查看 ActiveModelSerializers gem。它可以有效地处理您在上面尝试完成的所有事情。替代方案是 Rabl(不建议)和 JBuilder(新的和改进的序列化)
标签: ruby-on-rails json rspec