RESTful이 항상 사용자에게 가장 좋은 것은 아닙니다.

3972 단어 sinatrarestruby
RESTful 규칙은 향상된 커뮤니케이션을 허용하는 인터넷의 일관성을 만드는 데 매우 중요합니다. 그러나 삶의 대부분의 일과 마찬가지로 예외가 있습니다. 내 프로젝트에는 사람들이 자신의 병력과 주관적인 보고서를 입력할 수 있는 페이지가 포함되었습니다. 사용자가 한 페이지에 정보의 일부를 입력하고 다음 페이지로 진행하는 것은 편리하지 않습니다. 이것은 사람이 사용하거나 사용하지 않을 수 있는 메모와 별개이므로 별도의 페이지에 넣는 것이 적절합니다.

논의 중인 페이지는 다음과 같습니다.



       Medical Information Notepad
       Medical Information For Peter

일반 역사:
건강 상태:
약물:
알레르기:
현재 치료:
수술:
날짜가 있는 예방 접종:
현재 문제:
문제의 위치:
관찰된 모든 변경 사항:
당신이 느끼는 것:
1에서 10까지의 척도에서 불편함의 정도는 무엇입니까?
이것이 얼마나 오래 지속되었는지:
위의 정보를 입력하려면 여기를 누르십시오:
정보를 저장하지 않고 로그아웃하려면 여기를 누르십시오:


역사 및 주관적 영역에 관한 이러한 배열의 문제는 두 개의 별도 테이블에서 가져온 것입니다. 따라서 경로의 이름은 RESTful이 될 수 없으며 페이지에 두 개의 테이블이 표시되므로 테이블 이름을 사용하기만 하면 됩니다.
스키마는 다음과 같습니다.


create_table "comments", force: :cascade do |t|
t.text "식별자"
t.text "참고"
t.text "items_to_discuss"
t.text "질문"
t.integer "환자 ID"


create_table "히스토리", force: :cascade do |t|
t.text "진단"
t.text "약물"
t.text "알레르기"
t.text "현재_처리"
t.text "수술"
t.text "immunizations_with_dates"
t.integer "환자 ID"


create_table "환자", force: :cascade do |t|
t.string "사용자 이름"
t.string "password_digest"


create_table "주관적", force: :cascade do |t|
t.text "위치"
t.text "관찰된_변화"
t.text "sensation_changes"
t.string "scale_1_to_10"
t.text "length_of_time"
t.integer "환자 ID"




이것은 논의 중인 페이지의 코드입니다. 보시다시피, 두 개의 테이블이 업데이트되고 있지만 두 테이블에는 각각의 정보가 별도로 입력되어 있습니다.


의료 정보 메모장



의료 정보



<h3><u>General History:</u></h3>
Medical Conditions: <br> 
Medications: <br>
Allergies: <br>
Current Treatments: <br>
Surgeries: <br>
Immunizations With Dates: <br>

<h3><u>The Current Problem:</u></h3>
Location of the Problem:<br>
Any Observed Changes: <br>
What You Are Feeling: <br>
What Is The Level Of Discomfort On A Scale Of 1 To 10: <br>
How Long This Has Been Going On:<br>
<h3>

위의 정보를 입력하려면 여기를 누르십시오:

    <h3>

정보를 저장하지 않고 로그아웃하려면 여기를 누르십시오:

마지막으로 다음 코드를 사용하면 동일한 페이지의 두 섹션에 대한 정보를 저장할 수 있습니다.

게시 '/환자/:id/정보'
redirect_if_not_logged_in
환자 = Patient.find(세션["환자 ID"])
history = History.new(:diagnoses => params[:history][:diagnoses])
history.medications = params[:히스토리][:의약품]
history.allergies = params[:히스토리][:알레르기]
history.current_treatments = params[:히스토리][:현재_처리]
history.surgeries = params[:역사][:수술]
history.immunizations_with_dates = params[:history][:immunizations_with_dates]
history.patient_id = 환자.id
history.save
주관적 = 주관적.create(:위치 => 매개변수[:주관][:위치])
주관적.관측_변경 = 매개변수[:주관][:관찰_변경]
주관적.감각_변경 = 매개변수[:주관][:감각_변경]
주관적.scale_1_to_10 = 매개변수[:주관][:scale_1_to_10]
주관적.length_of_time = 매개변수[:주관][:length_of_time]
주관적인 환자 ID = 환자 ID
주관적.저장

    redirect 'patients/:id/info'
end



위의 코드에서 알 수 있듯이 경로는/show와 같이 RESTful 용어가 아닌/info로 끝납니다. 그러나 페이지에 표시된 내용의 의미를 전달합니다.

결론적으로 RESTful 규칙은 실제로 가능한 한 자주 사용되어야 합니다. 이 프레젠테이션은 휴식을 취하지 않는 것이 정당화될 수 있는 예를 제공합니다.

좋은 웹페이지 즐겨찾기