gpt4 book ai didi

ruby-on-rails - Rails - 常量哈希?

转载 作者:数据小太阳 更新时间:2023-10-29 06:48:46 26 4
gpt4 key购买 nike

我的应用程序需要一个模型(?),它基本上包含另一个实体的状态。在实体中我想存储状态的 id,但在我的应用程序中, View 是用一个漂亮的词描述来说话的。例如,1=新的,2=二手的等。

我怎样才能以最好的方式实现它,这意味着我可以轻松设置和检索此状态列而无需重复自己?

最终我想要这样的东西

Foo.status = 'New'  (actually sets value to 1)

Foo.status  (returns 'New', but stores 1)

我的思考方式是否正确?

最佳答案

您可以编写自定义编写器方法:

STATUS_VALUES = { 1 => 'new', 2 => 'modified', 3 => 'deleted' }

class Foo
attr_reader :status_id

def status
STATUS_VALUES[@status_id]
end

def status=(new_value)
@status_id = STATUS_VALUES.invert[new_value]
new_value
end
end

例如下面的程序:

foo_1 = Foo.new

foo_1.status = 'new'
puts "status: #{foo_1.status}"
puts "status_id: #{foo_1.status_id}"

foo_1.status = 'deleted'
puts "status: #{foo_1.status}"
puts "status_id: #{foo_1.status_id}"

输出:

status: new
status_id: 1
status: deleted
status_id: 3

关于ruby-on-rails - Rails - 常量哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/818062/

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