0

我很难理解为什么使用destroy方法会发生这种情况,因为控制器和路由上的一切都很好!

如果有人通过这种方式请给我一个提示?

路线

 resources :users, :as => "" do
    resources  :sections, :only => [:new, :create, :destroy, :index] 
  end

控制器

def destroy
    @section = Section.find(params[:id])
    @section.destroy
    redirect_to sections_url
    flash[:notice] = "Section deleted" 
  end

看法

<%= render :partial => "section", :collection => @sections %>

部分的

<%= link_to  section.name, section_path(current_user, section) %> 
<%= button_to 'Remove', current_user, section, :data => { :confirm => 'Confirm?' }, :class=> "buttom",  method: :delete %>
4

4 回答 4

2

该错误意味着某些函数需要 1 到 3 个参数,但您给了它 4 个参数。

请查看错误中的行号并查找函数,然后打开文档并查找如何使用该函数。通常,函数作为实例方法和类方法的工作方式不同。

于 2013-04-05T07:45:02.510 回答
2

问题似乎是这个方法调用:

button_to 'Remove', current_user, section, :data => { :confirm => 'Confirm?' }, :class=> "buttom",  method: :delete

current_usersection必须作为数组传递:

button_to 'Remove', [current_user, section], confirm: 'Confirm?', class: "buttom",  method: :delete
于 2013-04-05T07:48:13.870 回答
1

您的button_to辅助参数是错误的。

试试这个:

  <%= button_to 'Remove', {:action => :destroy, :user => current_user, :id => section}, {:data => { :confirm => 'Confirm?' }, :class=> "buttom",  method: :delete} %>
于 2013-04-05T07:48:49.230 回答
0

codeitStefan做了你们所说的但没有奏效,所以我尝试了这条路并成功了!

<%= button_to 'Remove', section_path(current_user, section), :data => { :confirm => 'Confirm?' }, :class=> "button",  method: :delete %>
于 2013-04-05T08:02:15.950 回答