我有以下内容可以创建或更新记录:
<%=form_for [:project, @permission], :remote => true do |f| %>
... You can change roles in the form... (This works great for new or existing records)
<% end %>
在表单中,我想提供删除/销毁权限的选项。所以我补充道:
<%= link_to 'remove from the team', [:project, @permission], :confirm => 'Are you sure?', :method => :delete %>
但那不起作用,错误......
呈现如下:
<a rel="nofollow" data-method="delete" data-confirm="Are you sure?" href="/projects/4/permissions/useronproject">remove from the team</a>
错误讯息: PermissionsController#destroy中的NoMethodError 未命名的方法`destroy'代表nil:NilClass
传递的参数只是: _method删除 身份验证令....
所以我不确定Rails如何知道要删除什么?
关于permissionsController。我确实有一个命运:
def destroy
@permission.destroy
respond_to do |format|
format.js
end
端
对此有什么看法?感谢
答案 0 :(得分:0)
您的网址中的权限ID似乎不是整数,而是权限的名称(或永久链接)。
你有没有像
这样的东西def to_param
permalink
end
在您的权限模型中?
返回的错误告诉@permission设置为nil(表示没有找到具有此ID的权限)。在您的销毁操作中,您需要通过此固定链接/名称检索您的权限,例如:
def destroy
@permission = Permission.find_by_permalink(params[:id])
@permission.destroy
respond_to do |format|
format.js
end
end