Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 接受属性的字符串输入,在DB中存储整数,在API中返回字符串_Ruby On Rails_Ruby_Activerecord_Rails Api - Fatal编程技术网

Ruby on rails 接受属性的字符串输入,在DB中存储整数,在API中返回字符串

Ruby on rails 接受属性的字符串输入,在DB中存储整数,在API中返回字符串,ruby-on-rails,ruby,activerecord,rails-api,Ruby On Rails,Ruby,Activerecord,Rails Api,我正在构建一个rails api应用程序。我有一门动物课 class Animal < ActiveRecord::Base TYPES = { herbivore: 1, carnivore: 2, omnivore: 3 } attr_reader :name, :type end 同样,表演动作的反应是“食草动物”、“食肉动物”或“杂食动物” 为了实现我想要的,我在我的动物类中添加了这些方法 def type=(value) super(TYPES[value.to_sy

我正在构建一个rails api应用程序。我有一门动物课

class Animal < ActiveRecord::Base
  TYPES = { herbivore: 1, carnivore: 2, omnivore: 3 }
  attr_reader :name, :type
end
同样,表演动作的反应是“食草动物”、“食肉动物”或“杂食动物”

为了实现我想要的,我在我的动物类中添加了这些方法

def type=(value)
 super(TYPES[value.to_sym])
end

def type
  TYPES.key(read_attribute(:type))
end
这个很好用

有更好的方法吗?

您可以这样使用:

class Animal
#GET animals/1
Response: { id: 1, name: "tommy", type: "carnivore" }, status: 200
def type=(value)
 super(TYPES[value.to_sym])
end

def type
  TYPES.key(read_attribute(:type))
end