我有一個嵌套屬性的表單,您可以在其中動態添加和刪除屬性(表單讓您可以單擊「添加業餘愛好」和「刪除業餘愛好」鏈接...用戶有業餘愛好,當進入他的個人資料時,他可以添加一,二,五或五十愛好)。Rails:更新條目時刪除嵌套屬性
在nested form gem的幫助下,這項工作完全正常。但是,我還提供了更新用戶個人資料的功能。
這樣做時,用戶可以點擊動態的「刪除」鏈接來取消愛好。但是,這並不會從數據庫中刪除「愛好」,就像我想要的那樣。所以我試圖編寫Jquery或者Javascript或者其他的東西,如果它存在的話就從數據庫中刪除對象。
這是代碼的樣子:
...
...
<%= f.fields_for :hobbys, :wrapper => false do |hobby| %>
<tr class="fields">
<td> <%= user.text_field :hobby %> </td>
<td> <%= user.link_to_remove "Remove" %> </td>
</tr>
<% end %>
</table>
<p><%= f.link_to_add "Add hobby", :hobbys, :data => { :target => "#hobbys" } %></p>
<script>
$(document).on('nested:fieldRemoved', function(event){
var field = event.field;
/* ??? Delete field somehow ??? */
})
</script>
有沒有辦法做到這一點?我真的不知道如何去了解它....它似乎並不像jQuery可以刪除掉數據庫...
UPDATE
,這裏是我最好的嘗試,到目前爲止...
...
...
<%= f.fields_for :hobbys, :wrapper => false do |hobby| %>
<tr class="fields">
<td> <%= user.text_field :hobby %> </td>
<td> <%= user.link_to_remove "Remove" %> </td>
</tr>
<% end %>
</table>
<p><%= f.link_to_add "Add hobby", :hobbys, :data => { :target => "#hobbys" } %></p>
<script>
$(document).on('nested:fieldRemoved', function(event){
$.get("delete", { id: 2 })
alert("Deleted: ");
})
</script>
我只是試圖讓這個該死的東西工作,通過硬編碼作爲參數的id(因爲我還不能輕易提取它)。但它繼續使用字符串「刪除」作爲用戶的ID .....呵呵??
這裏的日誌輸出:
Started GET "https://stackoverflow.com/users/delete?id=2" for 127.0.0.1 at 2016-10-05 08:35:15 -0400
Processing by UsersController#show as */*
Parameters: {"id"=>"delete"}
Current user: anonymous
Completed 404 Not Found in 19.5ms
ActiveRecord::RecordNotFound (Couldn't find User with id=delete):
我不斷收到一個錯誤,沒有用戶id =「刪除」......我不明白 – ineedahero