2014-12-18 97 views
8

這可能很簡單,我可以忽略它。我正在使用設計可鎖定功能,我想創建一個管理員可以檢查來解鎖鎖定用戶的按鈕。在視圖中設計解鎖按鈕

Devise有一個名爲unlock_access!的模型方法。我試圖用視圖中的按鈕在用戶的控制器方法中調用它。

瀏覽:

= link_to('unlock', user_unlock_path(user), method: :post, class: 'button-xs') unless user == current_user 

users_controller.rb:

def unlock 
    user = User.find(params[:id]) 
    user.unlock_access! 
end 

路線

resources :users do 
    post 'unlock' 
end 

回答

8

我想通了。

您必須更新路線才能在成員上調用方法。用工作代碼更新了視圖和控制器。

路由

resources :users do 
    post :unlock, :on => :member 
end 

更新控制器

def unlock 
    user = User.find(params[:id]) 
    user.unlock_access! 
    redirect_to users_path 
end 

更新視圖

= link_to(t('common.unlock'), unlock_user_path(user), method: :post, class: 'button-xs') unless user == current_user 
+0

我會使用補丁方法(放一個F或舊版本的rails)而不是post之一。 – 2017-03-07 09:25:54