将整数类型转换为字符串轨道

时间:2016-10-23 17:53:31

标签: ruby-on-rails ruby

我正在使用任务模型,其中包含3个字段:title:stringcompleted:booleanpriority: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

我该如何解决?

2 个答案:

答案 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?在一个实例上。