Rails: 如何用JS销毁列表元素

Rails: How to destroy element of list with JS

我在一个视图上有这样的短代码

ul#numbers
  li
  = phone_numbers
  button data-url=phone_number_path(phone_number) data-method=:delete data-remote=true Delete

(这是 Slim)这在服务器端工作正常(从数据库中销毁元素)。 我还有另一个视图,称为 destroy.js.slim。 我需要一个销毁元素的代码(从没有页面重新加载的页面)但我不知道该怎么做,因为 li 没有 id(我想我需要使用 'documentGetElementById' 或类似的东西)。希望你能帮助我,谢谢。

例如,如果您在控制器中有这样的操作:

def remove_phone_number
 @phone_number = PhoneNumber.find_by(number: params[:phone_number])
 @phone_number.remove
end

在您看来:

<li data-phone-id="<%= phone_number.id %>">...</li>

您可以在此控制器的视图文件夹中创建 remove_phone_number.js.erb(默认情况下与控制器操作同名)(例如 views/phones):

$('[data-phone-id=<%= @phone_number.id %>]').remove();

请注意,此代码只是原型,不是测试,而是展示想法。