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

时间:2014-02-28 19:47:30

标签: ruby-on-rails sqlite scaffolding model-associations

我想在我的rails应用程序中创建一个新的页面,您可以在登录后访问该页面。您将看到的是现有用户的下拉列表以及要为该用户分配的角色的下拉列表一个提交按钮,可以将该角色添加到该用户的user_role列。我是用

做的吗?
rails g controller add_roles new create

rails g scaffold add_roles

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

1 个答案:

答案 0 :(得分:1)

根据我的理解,rails scaffold是一整套控制器,模型和迁移。在您的情况下,我认为您不想要add_roles_controller和add_roles模型,您只想更新现有用户数据库的列吗?

如果是这样,问问自己是否真的需要一个控制器来执行此操作,这种类型的功能可以在现有的user_controller(或类似的东西)中完成。如果您要使用CRUD路线,可以将此视为用户的更新。

您可以从任何控制器进行活动记录调用,假设您在user_controller中并且您拥有用户模型,您可以执行以下操作:

@users = Users.all

这将返回存储在db中的所有用户的对象,从中可以循环遍历它们,挑选出每个个体角色属性。

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

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

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