我正在尝试弄清楚如何根据某些条件设置字段的默认值。
现在,无论房间中有多少人,room_type
字段都默认为double
。
基本上,我的目标是:
def set_room_defaults
if people_in_room.size == 1
set room_type = "Single"
elsif people_in_room.size == 2
set room_type = "Double"
elsif people_in_room.size == 3
set room_type = "Triple"
end
end
我一直在研究default_value_for
宝石,希望能做些类似的事情:
default_value_for :room_type, (call set_room_default)
我已经了解到after_initialize
可能与我要找的东西很接近?
像这样可能吗?还是我要解决所有这些错误?
谢谢
答案 0 :(得分:0)
查找程序发现并实例化的每个对象都会触发
after_find和after_initialize回调,在实例化新对象之后也会触发after_initialize
。
您可以执行以下操作:
super.onCreate(savedInstanceState);
setContentView(R.layout.{your layout});
或者您可以将映射存储在class Room < ApplicationRecord
after_initialize :set_room_defaults
def set_room_defaults
if people_in_room.size == 1
set room_type = "Single"
elsif people_in_room.size == 2
set room_type = "Double"
elsif people_in_room.size == 3
set room_type = "Triple"
end
end
end
中:
Array