0

こんにちは

私は小さなプロジェクトを通じてRailsを使い始めています。主なものはすべて、一部の医師、患者、および相談の間です。私は自分のアプリケーションを開始するために本で学んでいます。今のところ、うまく機能していますが、少しひねりを加えるにはまだ助けが必要です!

たとえば、医師が作成されたら、相談を作成できますが、相談には患者が必要で、相談の作成で患者のリストをレンダリングする方法がわかりません。

誰かが手がかりを持っていますか?

PS: これは私のコードです

=> ドクター

require 'digest'
class Doctor < ActiveRecord::Base
attr_accessible :birthdate, :birthplace, :city, :country, :firstname, :id_card_no, :lastname, :mail, :password, :secu_no, :street, :street_number, :zip
attr_accessor :password
validates :birthdate, :birthplace, :city, :country, :firstname, :lastname, :id_card_no, :secu_no, :street, :street_number, :zip, :presence=>true

validates :id_card_no,:secu_no, :uniqueness=>true

validates :street_number, :zip, :numericality=>true

validates :password, :confirmation => true,
            :length => { :within => 4..20 },
            :presence => true,
            :if => :password_required?

validates :mail, :uniqueness => true,
                :length => { :within => 5..50 },
                :format => { :with => /^[^@][\w.-]+@[\w.-]+[.][a-z]{2,4}$/i }

has_and_belongs_to_many :offices
has_and_belongs_to_many :specialities
has_and_belongs_to_many :secretaries
has_many :consultations

default_scope order('doctors.lastname')

before_save :encrypt_new_password

    def self.authenticate(email, password)
        user = find_by_email(email)
        return user if user && user.authenticated?(password)
    end
    def authenticated?(password) 
        self.hashed_password == encrypt(password)
    end

protected
    def encrypt_new_password
        return if password.blank?
        self.hashed_password = encrypt(password) 
    end
    def password_required?
        hashed_password.blank? || password.present?
    end
    def encrypt(string) 
        Digest::SHA1.hexdigest(string)
    end

end

=> 患者

class Patient < ActiveRecord::Base
attr_accessible :birthdate, :birthplace, :city, :country, :firstname, :id_card_no, :job, :lastname, :secu_no, :street, :street_number, :zip

validates :birthdate, :birthplace, :city, :country, :firstname, :lastname, :id_card_no, :secu_no, :street, :street_number, :zip, :presence=>true

validates :id_card_no,:secu_no, :uniqueness=>true

validates :street_number, :zip, :numericality=>true

has_many :consultations

default_scope order('patients.lastname')


end

=> 相談

class Consultation < ActiveRecord::Base
 attr_accessible :date, :hour

validates :date, :hour, :presence=>true

belongs_to :patient
belongs_to :doctor
has_one :patient_description
has_one :consultation_file
has_and_belongs_to_many :illnesses
has_and_belongs_to_many :symptoms

end

ありがとう!

トーマス

4

2 に答える 2

1

コンサルテーションの「patient_id」列の「collection_select」を調べたいと思います。

于 2013-06-20T20:51:57.147 に答える
1

Formtasticは、フィールドを「理解」し、関連付けの選択ボックスや日付の日付ピッカーを自動的に作成するなど、この点で非常に気に入っています。

<%= semantic_form_for @consultation do |f| %>
  <%= f.inputs do %>
    <%= f.input :date %>
    <%= f.input :hour %>
    <%= f.input :doctor %>
    <%= f.input :patient %>
  <% end %>
  <%= f.actions do %>
    <%= f.action :submit, :as => :button %>
    <%= f.action :cancel, :as => :link %>
  <% end %>
<% end %>

ただし、これは純粋な Rails ソリューションではなく、追加の Gem が必要です。それがあなたのトレーニング目的に合っているかどうかはわかりません。

于 2013-06-20T20:54:42.460 に答える