【发布时间】:2013-10-10 21:40:13
【问题描述】:
我正在尝试在 Devise 中创建多个模型(使用 Ruby 2.0、Rails 4)。我搜索过 Stack Overflow 并尝试过 Google,但大多数人最终使用继承或 CanCan。
问题是我需要两种完全不同的模型才能以两种完全不同的方式注册和使用我的网站 - 一种使用电子邮件或用户名登录,并且具有各种管理能力(例如查看MobileUser 使用情况等图表)。另一个只能从移动设备访问,使用电话号码登录,并且界面更简单。
我尝试为两者运行 Devise('rails g devise WebUser' 和 'rails g devise MobileUser')。我现在有两者的表和列,但只有 WebUser 的路由和模型。我尝试为 MobileUser 手动添加路由和模型,但没有任何效果 - 模型没有连接到表,路由产生运行时错误('WebUser 不响应'设计'方法)。
我所阅读的所有内容都表明我可以让 Devise 为我的一个网站上的两个模型工作 - 我该如何实现?
我的路线:
Mailer::Application.routes.draw do
devise_for :web_users
# devise_for :mobile_users (doesn't work, so it is commented out)
resources 'web_users', only: [:show, :index]
resources 'mobile_users', only: [:show, :index]
root 'static_pages#home'
match '/contact', to: 'static_pages#contact', via: 'get'
match '/faq', to: 'static_pages#faq', via: 'get'
end
【问题讨论】:
-
听起来很头疼。其中一个是全能的管理员,还是这些真正反映了不同的子集?
-
这是两个不同的子集。类似于在 MailChimp 中,公司发送电子邮件,查看图表,表明谁收到了电子邮件,可以管理他们发送给谁,等等......但收件人只能查看电子邮件 - 没有控件,没有其他页面,什么都没有。除了我的,两者都必须登录 - WebUser 使用电子邮件,MobileUser 使用电话号码。
-
你能显示你的路线吗?我将设计用于多个模型而没有问题,所以我要么误解了您的目标,要么需要更多信息来提供建议。
-
添加到我原来的帖子中
-
您的目标是拥有 2 个单独的登录页面,每个模型 1 个?
标签: ruby-on-rails devise ruby-on-rails-4