2014-12-18 93 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