使用rails 4.1.1
我的模型有一个枚举像:
class Article < ActiveRecord::Base
enum article_status: { published: 1, draft :2 }
Run Code Online (Sandbox Code Playgroud)
现在在我的new.html.erb中我有:
<%= form.select :article_status, options_for_select(Article.article_statuses) %>
Run Code Online (Sandbox Code Playgroud)
当要保存模型时,我收到此错误:
'1' is not a valid article_status
Run Code Online (Sandbox Code Playgroud)
我以为它可以在更新期间处理这个问题.
我究竟做错了什么?
控制器中的update_attributes或new调用将期望枚举符号的字符串化版本,而不是整数.所以你需要这样的东西:
options_for_select(Article.article_statuses.
collect{|item, val| [item.humanize, item]}, selected: @article.status)
Run Code Online (Sandbox Code Playgroud)
这篇文章中有一个完整的例子.
| 归档时间: |
|
| 查看次数: |
1024 次 |
| 最近记录: |