使用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
我以为它可以在更新期间处理这个问题。
我做错了什么?
答案 0 :(得分:5)
控制器中的update_attributes
或new
调用将期望枚举符号的字符串化版本,而不是整数。所以你需要这样的东西:
options_for_select(Article.article_statuses.
collect{|item, val| [item.humanize, item]}, selected: @article.status)
有一个完整的示例in this article。