<%= f.input :divisor, collection: [["Weekly", 52], ["Monthly", 12],
["Quarterly", 4]], as: :radio_buttons, label: false, input_html:
{id: "divisor"} %>
表单将值保存到db,但我还想使用用户在show页面上选择的键字符串。我尝试在模型中使用case语句,如下所示:
before_save :set_plan
attr_accessor :plan
def set_plan
case :divisor
when 52
puts "weekly"
when 12
puts "monthly"
when 4
puts "quarterly"
end
end
答案 0 :(得分:0)
而不是case :divisor
在模型中使用case self.divisor
。
如果您将该集合保存到某个表格中,那么使用self.divisor
会给出您想要的字符串。
<强> E.g。强>
你像这样创建表plans
id|plan_val|title
1| 52 | Weekly
2| 12 | Monthly
3| 4 | Quarterly
然后你可以写这样的回调
before_save :set_plan
def set_plan
puts Plan.find_by(plan_val: self.divisor).title
end