我正在使用任务模型,其中包含3个字段:title:string
,completed:boolean
,priority:integer
我想优先将整数值(1,2,3)转换为字符串值(Next,Now,Later)。
我写信到模特:
class Task < ApplicationRecord
belongs_to :user
PRIORITIES = [
['Later', 1],
['Next', 2],
['Now',3]
]
还有形式:
= f.input :priority, Task::PRIORITIES
一切都应该有效但我收到错误:
No implicit conversion of Symbol into Integer in this line
我该如何解决?
答案 0 :(得分:1)
尝试使用enums,就像这样
class Task < ApplicationRecord
belongs_to :user
enum priority: { later: 1, next: 2, now: 3}
end
答案 1 :(得分:0)
要创建带枚举的下拉菜单,您需要以下内容:
<%= f.select :priority, Effort.priorities.keys.map { |priority| [priority.titleize, priority] }, {prompt: true}, {class: "dropdown-select-field"} %>
作为使用enum
的奖励,您可以致电,例如:
Task.low
,或
task.next?
在一个实例上。