【发布时间】:2014-05-01 18:50:50
【问题描述】:
当我调用 create 方法时,我得到一个 nameError。
Failure/Error: post :create, { user: { email: 'charles@example.com',
NameError:
uninitialized constant API::V1::UsersController::UserV1Serializer
为什么要将 UsersController 模块添加到它正在寻找的类中?在我的会话控制器中,我使用相同的确切渲染线,它不会抱怨。到底是怎么回事?
app/controllers/api/v1/users_controller.rb
class API::V1::UsersController < API::V1::BaseController
...
...
def create
user = User.new(user_params)
if user.save
sign_in :user, user, store: false
end
render json: user, serializer: UserV1Serializer, root: 'user'
end
app/serializers/api/v1/user_v1_serializer.rb
class API::V1::UserV1Serializer < ActiveModel::Serializer
attributes :id, :email
def attributes
hash = super
if scope == object
hash[:token] = object.authentication_token
end
hash
end
end
【问题讨论】:
标签: json ruby-on-rails-4 active-model-serializers