【问题标题】:Rails 3, Devise, Multiple Roles Sharing Same ViewsRails 3,设计,多个角色共享相同的视图
【发布时间】:2011-09-30 12:30:36
【问题描述】:

我正在编写一个交易系统,我有 3 个模型/角色:买家、卖家和管理员。我已经为每个模型生成了设计视图,但我想为它们使用相同的登录、忘记密码页面等,而不是维护 3 组视图,有没有办法做到这一点?

买家和卖家有相似的字段(名字、姓氏、电子邮件地址、电话等),是否可以将 STI 与设计一起使用,是否相当简单?目前我有 3 个没有继承的独立模型。

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    您可以简单地拥有一个带有 :role 属性的 User 模型,还可以通过 CanCan 或 decl_auth (gems) 实现一个简单的 ACL。这样他们都将通过同一会话登录等。 Devise 和 CanCan 是一种非常流行的方法,并且在网上和它们各自的 Github wiki 中都有很好的记录。

    对于管理员,您可以修改验证以跳过额外的属性并将它们在数据库中保留为空白。

    【讨论】:

    • 啊,我明白了,所以我可以为用户使用 STI。是否可以使用您的方法为买家和卖家使用不同的注册页面?布局和表单字段将根据他们是买家还是卖家而改变。
    • 如上所述,登录页面是通用的,但是是的,您可以自定义每个不同的注册页面。获取 Devise 以生成其视图,然后您可以在视图中针对 current_user.buyer?current_user.seller? 进行测试并加载不同的部分(例如)。
    • 如果你不想为每个角色设置一个实例方法,你可以做if current_user.role == 'buyer'等...
    猜你喜欢
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多