0

我很努力去理解爲什麼這種情況發生在銷燬方法中,因爲控制器和路由上的所有東西都可以!錯誤的參數數量(4代表1..3)

如果有人通過這種方式請給我一個提示?

路線

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 %> 
+2

您能否介紹一下完整的錯誤信息? – scones 2013-04-05 07:41:31

+1

你的'button_to'幫手參數是錯誤的.. – codeit 2013-04-05 07:46:34

+0

我忘了添加摧毀路徑! – dcalixto 2013-04-05 07:56:06

回答

0

codeit斯特凡做了什麼,你們說,但沒有工作,所以我嘗試的路徑,而不是和工作!

<%= button_to 'Remove', section_path(current_user, section), :data => { :confirm => 'Confirm?' }, :class=> "button", method: :delete %> 
+0

你說得對,從[current_user,section]開始的路徑是'user_section_path'。 – Stefan 2013-04-05 11:58:09

+0

是的,但我在路由上使用資源

:users, :as => "" do
,所以只需要section_path工作。 – dcalixto 2013-04-05 18:28:50

2

該錯誤意味着一些功能需要1到3個參數,但是你給它4個參數。

請查看錯誤中的行號並查找函數,然後打開文檔並查找如何使用該函數。通常函數的工作方式與實例方法和類方法不同。

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 
1

button_to輔助論據是錯誤的。

試試這個:

<%= button_to 'Remove', {:action => :destroy, :user => current_user, :id => section}, {:data => { :confirm => 'Confirm?' }, :class=> "buttom", method: :delete} %> 
相關問題