2016-06-07 3 views
2

У меня есть модель Lead, у которой есть поле Status, которое состоит из нескольких значений через enum.Rails select_tag/dropdown с перечислениями

enum status: { open: 0, closed: 1, qualified: 2, rejected: 3 } 

Я пытаюсь создать избранную-поле (в таблице), где новый статус будет сохранен с помощью AJAX. Может кто-то помочь мне создать select_tag, онлайн, я могу найти перечисление, которое работает, но поскольку у меня есть ID и значения, это немного сложнее.

На данный момент у меня есть что-то вроде этого, но он не работает:

<tbody> 
    <% @leads.each do |lead| %> 
    <tr class="<%=cycle('odd', 'even') %> location_row" id="lead_row" data-id="<%= lead.id%>"> 
     <td><%= lead.id %></td> 
     <td><%= lead.fullname %></td> 
     <td><%= lead.email %></td> 
     <td><%= lead.phone %></td> 
     <td><%= select_tag :Status, Lead.statuses.keys.to_a %></td> #trying this, without luck 
     <td><%= select_tag :Status, Lead.statuses.keys.to_a.map { |w, v| [w.titleize, v] }%></td> #2nd try, without luck 
     <td><%= link_to (fa_icon "pencil-square-o "), edit_lead_path({:id => lead.id, :first_last_name => lead.first_last_name}), :title => 'Edit Lead', :class => "action-button" %></td> 
    </tr> 
    <% end %> 
    </tbody> 

Спасибо, T

ответ

5

Я нашел ответ сам методом проб и ошибок.

<%= select_tag :status, options_for_select(Lead.statuses.map {|k, v| [k.humanize.capitalize, v]}) %> 
1

Вы можете использовать следующий код для выбора перечисления статуса в качестве опции:
<%= select_tag :status, options_for_select(Lead.statuses) %>

Смежные вопросы