2016-09-19 127 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