如何在Rails中将标识符设置为整数?

时间:2018-08-17 04:40:20

标签: ruby-on-rails json

我有一个API方法,该方法返回JSON浮点标识符(3971.0)。尽管实际上应该输出一个整数(3971)。该如何补救?

def index
  @users = User.all

  render json: @users
end

1 个答案:

答案 0 :(得分:1)

如果您仍然想使用ActiveModel :: Serializer解决方案,则可以按照以下方式进行操作

  1. 您需要添加此gem 'active_model_serializers'
  2. 您需要为资源rails g serializer user创建一个序列化程序
  3. 这将在user_serializer.rb下创建文件app/serializer
  4. 在类中,按照以下方式定义要在响应attributes :user_id, :login, :name, :spr_work_id中发回的属性
  5. 假设您想将:spr_work_id的值修改为整数,然后必须在序列化程序中定义一个方法

    def spr_work_id
    
      self.object.spr_work_id.to_i
    
    end
    

在您的控制器中,将render json: @users替换为@users.map{|user| UserSerializer.new(user).serializable_hash}