0

这是我的用例,以项目符号表示,因此它很好且易于理解:

  • 管理员用户被植入,类型为用户并被赋予“管理员”角色。
  • 该管理员用户可以注册新学生和新教师,两者都是模型。
  • 管理员用户进入新用户注册页面(我Devise主要使用 gem 模板。)
  • 使用单选框选择新用户的类型,学生或教师。
  • Submit上,当然是Users这里使用的控制器,因为 Admin 是 User 类型。
  • 但在这里,我不想使用用户控制器create方法。我想要create一个新的学生或教师模型。他们都有自己的控制器,有自己的create方法,但是我如何从用户控制器中调用它们呢?或者,如果这是不好的做法,我想更普遍的问题是我如何创建这些新模型之一而不是用户模型?

谢谢!

4

1 回答 1

2

如果我正确理解了您的问题,您可以从您的单选框中检查您的参数以了解新用户的类型,然后只需调用一些私有方法并将参数传递给,这将根据参数创建新资源。

例如

假设您的 params 键中的名称为entity. 你确实在create#users

def create
  if create_new_resource(params)
    redirect_to some_path
   else
    render 'new'
  end
end

private

def create_new_resource(params)
   "#{params[:entity].create(params)}" 
end

只是作为一个开始版本。你也必须做一些改变

于 2013-04-20T21:07:32.490 回答