Ruby on rails 在Rails中创建新页面以向现有用户添加角色

Ruby on rails 在Rails中创建新页面以向现有用户添加角色,ruby-on-rails,sqlite,scaffolding,model-associations,Ruby On Rails,Sqlite,Scaffolding,Model Associations,我想在我的rails应用程序中创建一个新页面,您可以在登录后访问该页面。您只会看到一个包含现有用户的下拉列表,以及一个包含要分配给该用户的角色的下拉列表,其中包含一个提交按钮,该按钮将该角色添加到该用户的用户角色列中。我是用一只手做这件事的吗 rails g controller add_roles new create 或 如何让它向用户表提交正确的信息?据我所知,rails脚手架是一整套控制器、模型和迁移。在您的情况下,我认为您不需要添加角色控制器和添加角色模型,您只需要更新现有用户数据库

我想在我的rails应用程序中创建一个新页面,您可以在登录后访问该页面。您只会看到一个包含现有用户的下拉列表,以及一个包含要分配给该用户的角色的下拉列表,其中包含一个提交按钮,该按钮将该角色添加到该用户的用户角色列中。我是用一只手做这件事的吗

rails g controller add_roles new create


如何让它向用户表提交正确的信息?

据我所知,rails脚手架是一整套控制器、模型和迁移。在您的情况下,我认为您不需要添加角色控制器和添加角色模型,您只需要更新现有用户数据库的一列,对吗

如果是这样,问问自己是否真的需要一个控制器来实现这一点,这种功能可以在现有的用户控制器(或类似的东西)中实现。如果你要走CRUD路线,你可以考虑这是一个用户的更新。 您可以从任何控制器进行活动录制呼叫,假设您在用户控制器中,并且您有一个用户模型,您可以执行以下操作:

@users = Users.all
这将返回数据库中存储的所有用户角色的一个对象,用户可以从该对象中循环访问这些角色,并选择每个角色属性

如果您在创建表单方面需要帮助,您需要详细说明,这将需要更改您的路径以响应某个控制器操作的帖子。然后,控制器操作可以获取post的参数,比如用户角色,并相应地更新用户数据库

如果您还没有,请查看gem设备-这是一种非常简单的登录/注销方式,其中包括一些非常棒的会话管理


如果你想要更多的功能,我会研究rolify。我没有使用过它,但它似乎是一种向用户添加角色的好方法

如何从另一个表访问所有用户?比如我有一个用户表和一个公司表。所有用户都与公司关联。我只想显示与当前用户的公司关联的用户我不太熟悉活动记录关联,但是如果您还没有阅读过,我建议您使用它。听起来用户属于一家公司,而一家公司有很多用户。如果此关系设置正确,您应该能够运行类似于
@c=current_user.company
的程序,该程序将从中返回特定的公司对象。您可以执行
@c.users.all
来获取该公司的所有用户。
@users = Users.all