在模型中使用枚举,保存它时不喜欢整数值

时间:2014-07-06 22:32:58

标签: ruby-on-rails

使用rails 4.1.1

我的模型有一个类似的枚举:

class Article < ActiveRecord::Base
  enum article_status: { published: 1, draft :2 }

现在我的new.html.erb中有:

<%= form.select :article_status, options_for_select(Article.article_statuses) %>

当要保存模型时,我收到此错误:

'1' is not a valid article_status

我以为它可以在更新期间处理这个问题。

我做错了什么?

1 个答案:

答案 0 :(得分:5)

控制器中的update_attributesnew调用将期望枚举符号的字符串化版本,而不是整数。所以你需要这样的东西:

options_for_select(Article.article_statuses.
  collect{|item, val| [item.humanize, item]}, selected: @article.status)

有一个完整的示例in this article