2010-07-15 33 views
0

我有一個「manageUser」頁面,該路線是這樣的:爲什麼我有一個未知的行爲?

map.manageUsers "manageUsers", :controller => "users", :action => "manageUsers" 

和,它像用戶的一個指標,但提供了管理,禁止用戶禁止按鈕,所以,我有這樣的事這樣的:

<% @users.each do |user| %> 

    <td><%=h user.username %></td> 

     <td><%= link_to 'Ban !', user, :confirm => 'Are you sure?', :method => :ban %></td> 

<%end%> 

而且用戶控制器有這樣的方法:

def ban 
    @user = User.find(params[:id])  
    @user.isBan = true    
    if @user.save 
     flash[:notice] = @user.username ' is successful banned.'  
    else 
     flash[:error] = @user.username ' may have greater power than you.'  

    end 
    redirect_to manageUsers_url 

    end   

但是,當我點擊鏈接,它告訴我這個地址:

http://localhost:3000/users/46 

有了這個錯誤:

Unknown action

No action responded to 46. Actions:

發生什麼事?謝謝。

回答

1

因爲link_to helper中的:方法是定義要請求的HTTP方法。但不是你的控制器中的動作。

您需要使用url_for系統

<%= link_to 'Ban !', {:controller => 'users', :action => 'ban', :user_id => user.id}, {:confirm => 'Are you sure?'} %> 
相關問題