Rails设计了两个单独的注册表单

时间:2018-04-19 20:31:45

标签: ruby-on-rails ruby devise

我正在建立医生预约平台,在那里有病人和医生。

我目前有一个用户模型和一个注册表格的标准设计设置,我想要为病人分开一个表格,我将通过params患者的角色和医生形式与医生角色的参数,所以我可以分配角色来自控制器或模型。

表格将完全相同,仅适用于医生我需要一些额外的字段。

我的医生因为它属于一个用户将能够预约其他医生,使用布尔来定义它是否是医生或使用enum角色是一个好习惯。 / p>

我需要帮助

1 个答案:

答案 0 :(得分:0)

hidden_field_tag怎么样,你有没有尝试过或想要清除概念?您可以使用hidden_field_tag执行此操作,如果您使用像这样的引导选项卡创建这些表单



$('#myTabs a').click(function (e) {
  e.preventDefault()
  $(this).tab('show')
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<div>

  <!-- Nav tabs -->
  <ul class="nav nav-tabs" role="tablist">
    <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Doctor</a></li>
    <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Patient</a></li>
  </ul>
<h2>Just example form</h2>
  <!-- Tab panes -->
  <div class="tab-content">
    <div role="tabpanel" class="tab-pane active" id="home">
    <h2>Doctor?</h2>
    <form>
  <div class="form-group">
    <label for="exampleInputEmail1">Email address</label>
    <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email">
  </div>
  <div class="form-group">
    <label for="exampleInputPassword1">Password</label>
    <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
  </div>
  <div class="checkbox">
    <label>
      <input type="checkbox"> Check me out
    </label>
  </div>
  <button type="submit" class="btn btn-default">Submit</button>
</form>
    </div>
    <div role="tabpanel" class="tab-pane" id="profile">
    <h2>Patient?</h2>
        <form>
  <div class="form-group">
    <label for="exampleInputEmail1">Email address</label>
    <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email">
  </div>
  <div class="form-group">
    <label for="exampleInputPassword1">Password</label>
    <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
  </div>
  <div class="checkbox">
    <label>
      <input type="checkbox"> Check me out
    </label>
  </div>
  <button type="submit" class="btn btn-default">Submit</button>
</form>
    </div>
  </div>

</div>
&#13;
&#13;
&#13;

在表单中,您可以使用隐藏字段,例如医生

的表单
<%= f.hidden_field :role, value: "doctor" %>

以及患者的表单

<%= f.hidden_field :role, value: "patient" %>

并在role

中允许他们application_controller
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:email, :role])
end

我觉得它会有所帮助。