У меня есть приложение Rails со списком потенциальных клиентов в таблице. В одном из столбцов я отображаю статус лида в выпадающем меню. Я хочу разрешить изменение этого статуса лида при изменении значения, выбранного в раскрывающемся списке.
Вот что я пробовал:
Код для отображения формы в ячейке таблицы:
<% @leads.each do |lead| %>
<tr>
<td><%= lead.id %></td>
<td><%= form_for(lead,:url => 'update_lead_status') do |f| %>
<div class="field">
<%= f.select :status, ["to_call","called","confirmed","lite"], :selected => lead.status, onchange: "this.form.submit();" %>
</div>
<% end %>
</td>
Мой метод update_lead_status в контроллере лидов:
#PUT
def update_lead_status
@lead = Lead.find(params[:id])
respond_to do |format|
# format.js
if @lead.update_attributes(params[:lead])
format.html { redirect_to leads_url, notice: 'Lead was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @lead.errors, status: :unprocessable_entity }
end
end
end
Также я хочу, чтобы представление было в стиле Ajax без обновления.
1 ответ
Установите идентификатор формы, а затем отправьте форму
<%= form_for(lead,:url => 'update_lead_status',:html=>{:id=>'lead_form'}) do |f| %>
<%= f.select :status, ["to_call","called","confirmed","lite"], :selected => lead.status, onchange: "$('#lead_form').submit();" %>
<% end %>
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.