У меня есть страница, которая при нажатии кнопки я хочу запустить метод на стороне рельсов и обновить страницу, соответственно:рендеринг элемента через AJAX
метода контроллера:
def disallow_part_for_augment
disallowed_part = AvailableAugmentsPart.create(part_id: params[:part_id], available_augment_id: params[:id], disallow: true)
disallowed_part.save()
respond_to do |format|
format.html { redirect_to v2_parts_url }
format.js
end
end
Ajax Метод:
$ ->
$('#disallow-part').click (e) ->
console.log $(this).attr("href")
e.preventDefault()
$.ajax
url: $(this).attr("href")
type: 'PUT'
//data:
return
часть с вызовом метода хелперов является то, что я хочу обновленный
<td><%= au.augment.code %></td>
<%= show_part_group_for_allowed_parts(part_group.name, @part.id, au.id) %>
<td><%= part_group.part_category.name %></td>
метод Helper
def show_part_group_for_allowed_parts(part_group_name, part_id, available_augment_id)
html = ""
if AvailableAugmentsPart.is_part_disallowed(part_id, available_augment_id).exists?
html << "<td class='status color-red'>Disallowed</td>"
else
html << "<td>#{part_group_name}</td>"
end
return raw(html)
end
Ссылка для запуска события:
<%= link_to('DISALLOW', "disallow_part_for_augment/#{au.id}", id: 'disallow-part', class: 'btn btn-mini btn-primary', title: 'Disallow', remote: true) %>