Ruby on rails 如何在rails中更改用户状态 def active\u用于身份验证? 超级和自我。是否处于活动状态? 结束

Ruby on rails 如何在rails中更改用户状态 def active\u用于身份验证? 超级和自我。是否处于活动状态? 结束,ruby-on-rails,Ruby On Rails,我在我的User.rb中有这个方法,它基本上允许我阻止任何非活动用户或非管理员登录,并且工作得很好 但现在我想创建一个方法,允许我的管理员从我的视图中激活和停用任何用户。我已经在视图中列出了我的所有用户及其各自的状态(活动或不活动)。现在,当我单击按钮时,如果用户处于非活动状态,则应将其更改为活动状态;如果用户处于活动状态,则应将其更改为非活动状态 更改控制器中的方法 def更改\u状态 如果@users.status? @users.update_属性(:status,false) 其他的 @

我在我的
User.rb
中有这个方法,它基本上允许我阻止任何非活动用户或非管理员登录,并且工作得很好


但现在我想创建一个方法,允许我的管理员从我的视图中激活和停用任何用户。我已经在视图中列出了我的所有用户及其各自的状态(活动或不活动)。现在,当我单击按钮时,如果用户处于非活动状态,则应将其更改为活动状态;如果用户处于活动状态,则应将其更改为非活动状态

更改控制器中的方法

def更改\u状态
如果@users.status?
@users.update_属性(:status,false)
其他的
@users.update_属性(:status,true)
结束
结束

希望这是您要找的,谢谢,这基本上是我拥有的,但我的难题是如何将其集成到我的视图中,例如,当我单击按钮时,它会停用用户,当我再次单击时,它会重新激活,在我的控制器中,如果@users.status==true返回false,则显示def change_status,否则返回true end end,在我看来,但由于某种原因,它不起作用,这就是我得到的答案——nil的未定义方法'status':nilclass这是因为在您的例子中@users变量是nil,也就是说,您不是在寻找要在之前更改状态的用户,您能帮我吗?我刚开始在Railsy中编程,您需要在视图中发送
ruby
您还必须更正路由,以便它通过参数:id进行检查,然后在控制器中
ruby def change#status#获取此user@user=UserModel.find(:id)if@user.status@user.update_属性(:status,false)else@user.update_属性(:status,true)end-end
def active_for_authentication?<br>
    super and self.is_active?<br>
end