gpt4 book ai didi

ruby-on-rails - 模块/类库

转载 作者:太空宇宙 更新时间:2023-11-03 17:44:47 24 4
gpt4 key购买 nike

下面的代码,最后的问题。

module Vehicle
class Car
@car = {}
def self.create_my_car(options={})
if @car.any?
puts "but you already have a car!"
return
end
if options.key?(:type)
if options[:type] == 'small'
@car.merge!(wheels: '3')
elsif options[:type] == 'huge'
@car.merge!(wheels: '8')
elsif options[:type] == 'normal'
@car.merge!(wheels: '4')
end
else
@car.merge!(wheels: '4')
end
end

def self.my_car(options={})
create_my_car unless @@car
puts "car has 4 wheels"
end

def self.specs(options={})
puts @car.to_s
end
end
end

从 Controller Action 中调用模块

class CarsController < ApplicationController
def create
Vehicle::Car.create_my_car(params)
Vehicle::Car.specs
end
end

执行操作

请求 1(好)

http://127.0.0.1:3000/cars?type=small
{:wheels=>"3"}
but you already have a car!

请求 2(错误)实例已存在。 type=huge 应该创建一个有 8 个轮子的汽车,但实例已经存在来自上一个请求

http://127.0.0.1:3000/cars?type=huge
{:wheels=>"3"}
but you already have a car!

让模块/类仅在 Controller 请求期间持续存在的最佳方法是什么?换句话说,我不希望请求 2 使用请求 1 中的数据

最佳答案

What is the best approach to having a module/class last only for the duration of the controller request? In other words, I do not want request 2 to be using data from request 1

在这种情况下,不要使用类级数据。将您的规范存储在类的实例中,而不是类本身。

关于ruby-on-rails - 模块/类库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41943228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com