2016-09-19 86 views
1

我在形式 这里有一个问题,选择枚举值是一个形式枚举选择轨道

=form_for @ticket , remote: true do |f| 
    .errors   
    p 
     = f.label :name, class: 'label_hidden' 
     = f.text_field :name, placeholder:'Input your name', class:'form-control' 
    p 
     = f.label :email, class: 'label_hidden' 
     = f.email_field :email, placeholder:'Input your email', class:'form-control' 
    p 
     = f.label :department, class: 'label_hidden' 
     = f.select :department, Ticket.departments.keys , class:'form-control'  
    p 
     = f.submit 'Submit', class:'btn btn-default custom' 

在我的分贝我有一个场部是字符串类型,也是一个模式,我有

​​

当我发送这个表格 - 在params中一切正常(部门参数在那里),我也允许这个参数在控制器中。我仍然收到“部门不能空白”。我错在哪里?

+1

您好,欢迎堆栈溢出。它可以帮助我们,如果你能向我们展示params通过的服务器日志部分(以及它后面的几行),我们可以看到它们有什么结构。您是否曾尝试在Rail控制台中手动创建票据并查看它是否也具有相同的错误(或者它只是表单)? –

+0

你好Taryn !!我试过了 - 它一直在回传一个交易!有帮助的是我改变了数据库中的字符串值为整数,我也在我的params中设置了一个丑陋的类型转换。我相信我不明白枚举在rails((。 –

+0

)应该在数据库中的枚举的值是分区整数,当使用枚举吗?我也有一个问题,类:'form controll'根本不影响选择字段,可以你看看吧? –

回答

2

我想你收到枚举为字符串,所以你应该把它与setter方法转换:

def department=(val) 
    self[:department] = val.to_sym 
end