Ruby on rails 如何从ActiveRecord模型中获取多个属性值和方法值?
为了解决我的问题,我在下面设置了虚拟汽车模型: 车型有Ruby on rails 如何从ActiveRecord模型中获取多个属性值和方法值?,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,为了解决我的问题,我在下面设置了虚拟汽车模型: 车型有 3属性(id、车名、车主名)和 2返回整数(乘客、乘客)的方法 我想得到一个HASHONE,其中包含来自所有汽车的2属性和2方法的值。为了解决这个问题,我的临时解决方案如下: json_format = Car.all.to_json(only: [:car_name, :owner_name], methods: [:riders, :passengers]) final_hash = ActiveSupport::JSON.decode
3属性(id、车名、车主名)和
2返回整数(乘客、乘客)的方法 我想得到一个HASHONE,其中包含来自所有汽车的2属性和2方法的值。为了解决这个问题,我的临时解决方案如下:
json_format = Car.all.to_json(only: [:car_name, :owner_name], methods: [:riders, :passengers])
final_hash = ActiveSupport::JSON.decode(json_format)
这是可行的,但这很糟糕,因为我只对其可选函数使用“to_json”方法。他们还可以通过自己的可选函数直接从汽车模型中获取一个散列吗?使用
as\u json
。这是to_json
在引擎盖下使用的,它接受所有相同的选项,但返回一个散列使用作为_json
。这是to_json
在引擎盖下使用的,它接受所有相同的选项,但返回一个散列使用作为_json
。这是to_json
在引擎盖下使用的,它接受所有相同的选项,但返回一个散列使用作为_json
。这是to_json
在引擎盖下使用的,它接受所有相同的选项,但返回一个散列值我和您一样认为,将json命令用于与json无关的方法是一种糟糕的做法
如果您不介意长篇大论,您可以这样做:
formatted_cars = Array.new
Car.all.each do |c|
formatted_cars.push( car_name: c.car_name,
owner_name: c.owner_name,
riders: c.riders,
passengers: c.passengers )
end
我发现,当同时点击属性和方法时,只需像这样指定赋值就最干净了。这也是我将对象及其虚拟属性传递给javascript时使用的技术。我和您一样认为,将json命令用于与json无关的方法是一种糟糕的做法
如果您不介意长篇大论,您可以这样做:
formatted_cars = Array.new
Car.all.each do |c|
formatted_cars.push( car_name: c.car_name,
owner_name: c.owner_name,
riders: c.riders,
passengers: c.passengers )
end
我发现,当同时点击属性和方法时,只需像这样指定赋值就最干净了。这也是我将对象及其虚拟属性传递给javascript时使用的技术。我和您一样认为,将json命令用于与json无关的方法是一种糟糕的做法
如果您不介意长篇大论,您可以这样做:
formatted_cars = Array.new
Car.all.each do |c|
formatted_cars.push( car_name: c.car_name,
owner_name: c.owner_name,
riders: c.riders,
passengers: c.passengers )
end
我发现,当同时点击属性和方法时,只需像这样指定赋值就最干净了。这也是我将对象及其虚拟属性传递给javascript时使用的技术。我和您一样认为,将json命令用于与json无关的方法是一种糟糕的做法
如果您不介意长篇大论,您可以这样做:
formatted_cars = Array.new
Car.all.each do |c|
formatted_cars.push( car_name: c.car_name,
owner_name: c.owner_name,
riders: c.riders,
passengers: c.passengers )
end
我发现,当同时点击属性和方法时,只需像这样指定赋值就最干净了。这也是我将对象及其虚拟属性传递给javascript时使用的技术。我同意将其转换为Json并返回是非常愚蠢的。我愿意这样做
Car.all.collect{|car| hash = {}; [:car_name, :owner_name, :riders, :passengers].each{|key| hash[key] = car.send(key)}; hash}
将其放入对象中的方法会更干净
#in Car class
def stats_hash
hash = {}
[:car_name, :owner_name, :riders, :passengers].each do |key|
hash[key] = self.send(key)
end
hash
end
那就做吧
Car.all.collect(&:stats_hash)
我同意将其转换为Json并返回是相当愚蠢的。我愿意这样做
Car.all.collect{|car| hash = {}; [:car_name, :owner_name, :riders, :passengers].each{|key| hash[key] = car.send(key)}; hash}
将其放入对象中的方法会更干净
#in Car class
def stats_hash
hash = {}
[:car_name, :owner_name, :riders, :passengers].each do |key|
hash[key] = self.send(key)
end
hash
end
那就做吧
Car.all.collect(&:stats_hash)
我同意将其转换为Json并返回是相当愚蠢的。我愿意这样做
Car.all.collect{|car| hash = {}; [:car_name, :owner_name, :riders, :passengers].each{|key| hash[key] = car.send(key)}; hash}
将其放入对象中的方法会更干净
#in Car class
def stats_hash
hash = {}
[:car_name, :owner_name, :riders, :passengers].each do |key|
hash[key] = self.send(key)
end
hash
end
那就做吧
Car.all.collect(&:stats_hash)
我同意将其转换为Json并返回是相当愚蠢的。我愿意这样做
Car.all.collect{|car| hash = {}; [:car_name, :owner_name, :riders, :passengers].each{|key| hash[key] = car.send(key)}; hash}
将其放入对象中的方法会更干净
#in Car class
def stats_hash
hash = {}
[:car_name, :owner_name, :riders, :passengers].each do |key|
hash[key] = self.send(key)
end
hash
end
那就做吧
Car.all.collect(&:stats_hash)