如何将医生添加到诊所

问题描述 投票:0回答:1

我有此设置。

用户有很多诊所,而诊所有很多从业人员。诊所属于用户,从业者属于诊所。

我正在使用邪恶的向导进行注册。这些步骤是:用户信息,诊所信息,从业者信息。

注册后,用户应该可以将更多的从业人员添加到诊所,但是我不确定该怎么做。

我有一个概述页面,在这里我将列出该特定诊所的所有从业者,并且还有一个添加新的从业者链接,单击该链接将为新的从业者启动从业者信息注册步骤,并将医生与诊所联系起来。

我想这很简单,但我不知道该怎么做。试图搜索google,但找不到有关此操作的说明。

user.rb

class User < ApplicationRecord
has_many :services, dependent: :destroy
accepts_nested_attributes_for :services, reject_if: :all_blank, allow_destroy: true

has_many :educations, dependent: :destroy
accepts_nested_attributes_for :educations, reject_if: :all_blank, allow_destroy: true

has_many :awards, dependent: :destroy
accepts_nested_attributes_for :awards, reject_if: :all_blank, allow_destroy: true

has_many :user_professions, dependent: :destroy
has_many :professions, through: :user_professions

has_many :user_memberships, dependent: :destroy
has_many :memberships, through: :user_memberships

has_many :user_specialities, dependent: :destroy
has_many :specialities, through: :user_specialities

has_many :clinics, dependent: :destroy
accepts_nested_attributes_for :clinics, reject_if: :all_blank, allow_destroy: true


has_one_attached :clinic_logo
accepts_nested_attributes_for :clinic_logo_attachment, allow_destroy: true

has_one_attached :practitioner_image
has_many_attached :clinic_images

# Note that implicit association has a plural form in this case
scope :with_eager_loaded_images, -> { eager_load(images_attachments: :blob) }
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable

after_create :send_admin_mail
def send_admin_mail
UserMailer.send_welcome_email(self).deliver_later
end

end

clinic.rb

class Clinic < ApplicationRecord 
belongs_to :user 
has_many :practitioners, dependent: :destroy
accepts_nested_attributes_for :practitioners, reject_if: :all_blank, allow_destroy: true

end

practitioner.rb

class Practitioner < ApplicationRecord
belongs_to :clinic

def current_step?(step_key) current_step == step_key end

enum practitioner_gender: { Mand: 0, Kvinde: 1 }
def self.genders_for_select
practitioner_genders.keys.map{ |x| [x.humanize, x] }
end

end

userprofiles / practitioners.html.erb这是我列出所有从业人员的页面,用户应该可以单击添加新的从业人员按钮。

<div class="content-container">
<div class="content practitioners">
<ul class="practitioners">
<li class="practitioner"><a class="overlay"
href="/partner/practitioners/5e289036c3bbe8770f417830"></a>
<div class="image">

<% if @current_user.clinic_logo.attached? %>

<%= image_tag @current_user.clinic_logo.variant(resize: "100x100")%>

<% else %>
<div class="image"
style="background-image: url(&quot;https://betterwing.s3.amazonaws.com/images/default-practitioner.png&quot;);">
</div>
<% end %>
<%= link_to (@current_user.first_name), practitioner_info_path(@current_user) %>
</div>


<h4 class="name">sdad sad</h4>
<div class="btn-container delete"><button class="btn pink" type="button"><span class="flex"><i
class="material-icons icon ">delete</i></span></button></div>
</li>

<li class="AddPractitioner"><a class="overlay" href="/partner/practitioners/new"></a>
<div class="image"><i class="material-icons icon ">add</i></div>
<h4 class="name">Add new practitioner</h4>

</li>
</ul>
</div>
</div>

routes.rb

Rails.application.routes.draw do
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
devise_for :users, controllers: {:registrations => "users/registrations" 
}

resources :registration_steps
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
root 'pages#index' 
get 'about', to: 'pages#about'
get 'team', to: 'pages#team'
get 'faqs', to: 'pages#faqs'
get 'faqspractitioners', to: 'pages#faqspractitioners'
get 'faqsusers', to: 'pages#faqsusers'
get 'login', to: 'pages#login'
get 'signup', to: 'pages#signup'
get 'search', to: 'pages#search'
get 'practitioner', to: 'pages#practitioner'

get "userprofiles/user_info" => "userprofiles#user_info", as: "user_info"
get "userprofiles/clinic_info" => "userprofiles#clinic_info", as: "clinic_info"
get "userprofiles/practitioner_info" => "userprofiles#practitioner_info", as: "practitioner_info"
get "userprofiles/practitioners" => "userprofiles#practitioners", as: "practitioners"

patch "userprofiles/user_info" => "userprofiles#update"
patch "userprofiles/clinic_info" => "userprofiles#update"
patch "userprofiles/practitioner_info" => "userprofiles#update"


devise_scope :user do 
scope module: :users do
resources :registrations, only: [] do
member do
delete :delete_image_attachment
end
end
end
end
end

userprofiles_controller.rb

class UserprofilesController < ApplicationController
  # fill the methods as you need, you can always get the user using current_user


  def user_info
  end

  def clinic_info
    @user = current_user
    @clinic = Clinic.all      

  end


  def practitioner_info
    @user = current_user
  end

  def practitioners
    @user = current_user
    @practitioner = Practitioner.new
  end

  def update
    if current_user.update(user_params)
      redirect_to root_path
    else
      render :edit
    end
  end

  private
  def user_params
    params.require(:user)
    .permit(:first_name, :last_name, :email, :password, :password_confirmation, :phone, 
      :clinic_logo, 
      :practitioner_image, 
      clinic_images: [], 
      profession_ids: [], 
      speciality_ids: [], 
      services_attributes: [:id, :description, :name, :duration, :price, :_destroy], 
      educations_attributes: [:id, :name, :place, :year, :_destroy],
      membership_ids: [],
      awards_attributes: [:id, :name, :year, :_destroy],
      clinics_attributes: [:id, :clinic_name, :clinic_address, :clinic_zip_code, :clinic_municipality, :clinic_about, :clinic_mail, :clinic_phone, :clinic_website, :clinic_city, :_destroy,
      practitioners_attributes: [:id, :public_health_insurance, :practitioner_gender, :practitioner_first_name, :practitioner_last_name, :practitioner_description, :practitioner_mail, :practitioner_phone, :practitioner_website, :_destroy]])

  end

end
ruby-on-rails associations wicked-gem
1个回答
0
投票

我有几个问题需要跟进。

  1. 你为什么有href="/partner/practitioners/5e289036c3bbe8770f417830"
  2. 不确定因为您的代码如何工作或不工作,因为
<li class="AddPractitioner">
  <a class="overlay" href="/partner/practitioners/new"></a>
  <div class="image">
    <i class="material-icons icon ">add</i>
  </div>
  <h4 class="name">Add new practitioner</h4>
</li>

将不会显示任何链接,您应该将其更改为

<li class="AddPractitioner">
  <%= link_to [:partner, :practitioners, :new], class: 'overlay' do %>
    <div class="image">
      <i class="material-icons icon ">add</i>
    </div>
  <% end %>
  <h4 class="name">Add new practitioner</h4>
</li>

© www.soinside.com 2019 - 2024. All rights reserved.