我正在尝试删除通过Actor
模型关联的Movie
和Appearance
之间的关联。我想通过单击actor的编辑页面上的链接来完成此操作。我找到了我需要使用的方法(@actor.movies.delete()
),但我不确定在哪里放置它以及如何获得正确的movie
id。
以下是演员表格中影片领域的部分内容:
<%= f.label :title %>
<%= f.text_field :title %>
<%= f.check_box :_destroy %>
<%= f.label :_destroy, "Remove Movie" %>
如果我将:allow_destroy => true
添加到我的Actor
模型中,则上述方法有效,但我想要做的是重写它以便不删除电影,只删除关联。
答案 0 :(得分:1)
看看这里: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
collection.delete(object,...) 通过删除它们,从集合中删除一个或多个对象 联接表中的关联。这个 不破坏物体。
答案 1 :(得分:0)
当然,我需要做的是删除外观而不是电影对象本身。
<% @actor.appearances.each do |appearance| %>
<div class="field">
<%= link_to appearance.movie.title, appearance.movie %>
<%= link_to 'Delete', appearance, :confirm => 'Are you sure?', :method => :delete %>
</div>
<% end %>