У меня есть представление под названием hot.html.erb, в котором перечислены элементы, называемые «проблемами».Я хочу, чтобы пользователь мог просто изменить значение параметра и мгновенно отправить изменение с помощью AJAX для обновления базы данных для таких вещей, как «статус».
То, что происходит, - то, что, когда опция выбрана, база данных обновляется, но я перенаправлен в представление show.html.erb.Я хотел бы остаться в представлении hot.html.erb.У меня такое чувство, что я не понимаю запись format.js и что нужно сделать.Любая помощь будет оценена.
Я использую jquery, query_ujs, rails.js.
Я реализовал следующий update.html.erb в моем IssuesController:
def update
@issue = Issue.find(params[:id])
respond_to do |format|
if @issue.update_attributes(params[:issue])
format.html { redirect_to(@issue, :notice => 'Issue was successfully updated.') }
format.xml { head :ok }
format.js { render :nothing => true }
else
format.html { render :action => "edit" }
format.xml { render :xml => @issue.errors, :status => :unprocessable_entity }
end
end
end
Вот моя страница индекса (hot.html.erb) с формой для полей выбора, где я хочу, чтобы пользователь мог изменять «статус» и «приоритет»:
<% @issues.each do |issue| %>
<tr>
<td><%= issue.description %></td>
<td><%= issue.notes %></td>
<%= form_for(issue, :remote => true) do |f| %>
<td><%= f.select :status, [["Emerging", "emerging"], ["Investigating", "investigating"], ["Scheduled for Update", "Scheduled for Update"]], {}, :onchange => 'this.form.submit();' %>
</td>
<td><%= f.select :priority, [["Thermonuclear", "nuclear"],["Hot", "hot"], ["Warm", "warm"], ["Cool", "cool"]], {}, :onchange => 'this.form.submit();' %>
</td>
<% end %>
<td><%= issue.case %></td>
<td><%= issue.location %></td>
<td><%= issue.customer.account_name %></td>
<td><%= link_to 'Show', issue %></td>
<td><%= link_to 'Edit', edit_issue_path(issue) %></td>
<td><%= link_to 'Destroy', issue, :confirm => 'Are you sure?', :method => :delete %> </td>
</tr>
<% end %>