Ruby on rails 使用rails 3.2中的表单删除记录

Ruby on rails 使用rails 3.2中的表单删除记录,ruby-on-rails,ruby-on-rails-3.2,form-for,destroy,delete-record,Ruby On Rails,Ruby On Rails 3.2,Form For,Destroy,Delete Record,我有两个模型,用户和材料。用户可以选择最喜欢的材料。我已经建立了人际关系,偏爱的代码运行良好,但我似乎无法正确地获得不喜欢的代码。我有以下不利的代码: 物料控制员(在不利形式下的展示活动中) 注意:我使用此代码决定在视图中显示哪个按钮。假设存在记录,我们得到以下结果: 查看 <%= form_for @favourite, :method => :delete do |f| %> <%= f.submit "Unfavourite" %> <% end %&g

我有两个模型,用户和材料。用户可以选择最喜欢的材料。我已经建立了人际关系,偏爱的代码运行良好,但我似乎无法正确地获得不喜欢的代码。我有以下不利的代码:

物料控制员(在不利形式下的展示活动中)

注意:我使用此代码决定在视图中显示哪个按钮。假设存在记录,我们得到以下结果:

查看

<%= form_for @favourite, :method => :delete do |f| %>
<%= f.submit "Unfavourite" %>
<% end %>
更新

我还尝试使用link_to代替表单。代码如下:

<%= link_to "Unfavourite", favmat_path, method: "delete" %>


奇怪的是,html从材质中获取favmat id,而不是favmat对象。我不知道如何在那里获取favmat对象id。似乎什么都不起作用。

尝试传递
@favorite
对象,而不是
favmat\u路径
链接

<%= link_to "Unfavourite", @favourite, method: :delete %>


您是否收到错误?如果我站在你的立场上,我会把
材料\u控制器
中的“不利”作为一项会员行为来处理。我确实会收到一个错误,是的。我曾考虑过处理物料控制器中的不利因素,但这已经相当复杂了,在Favmats控制器中设置与Favmats模型相关的操作似乎更有意义。您会遇到什么错误?你能粘贴所有回溯吗?是否可能是
未定义的方法model\u name…
?我得到:ActiveRecord::Relation的未定义方法“model\u name”:Class@Finnjon尝试将
@favorite=Favmat.where(:user\u id=>current\u user.id,:material\u id=>@material.id)
替换为
@Favmat.where(:user\u id=>current\u user.id,:material\u id=>@material.id).首先
谢谢,这很有效!但是,当只返回一条记录(因为每条记录都是唯一的)时,为什么需要“第一条”呢?@Finnjon因为
其中
总是返回一个关系,即使它只包含一条记录
其中
将一条记录的关系转换为一条记录并不明智,因此必须手动执行。BTW,请考虑标记有用的答案,请接受。
<%= link_to "Unfavourite", favmat_path, method: "delete" %>
<%= link_to "Unfavourite", @favourite, method: :delete %>