0

patient_admissionsすべての RESTful ルートを持つというリソースがあります。という別のリソースの下にネストされていpatientsます。(with )というモデルのフィールドを更新し、その値をテーブルに保存する別のメソッドをpatient_admissionsコントローラーに追加したいと考えています。discharge:discharge_dateDate.now

destroyこれをメソッドのように機能させたいと考えています。ビューpatient_admissionのテーブルに多数のオブジェクトがリストされている場合index、リンクをクリックするだけDischargeで確認ボックスが表示され、[OK] をクリックしてから、値は、最初に別のビューに移動してフォームを処理することなく更新されます。

JavaScriptのようなものに頼らずにこれを行うにはどうすればよいですか? どうもありがとう!

4

2 に答える 2

1

link_toまたはbutton_toヘルパーをコントローラーのカスタム メンバー ルートと組み合わせて使用​​することで、これを行うことができます。次に例を示します。

#routes.rb
resources :patient_adminssions do
  put :discharge, :on => :member
end

PUT を使用してカスタム ルートを追加したことに注意してください。これは、レコードが削除されず、変更されただけであるためです。したがって、REST の標準によると、put が最も適していると思います。

# in your view
<%= button_to "Discharge", discharge_patient_admission_path(@patient_admission), :method => :put,
             :confirm => "Are you sure you want to discharge this patient?" %>

これにより、非表示のフォームにボタンが作成され、クリックすると確認メッセージが表示され、確認された場合は、コントローラーアクションにリクエストが送信され、提案したように適切な退院日を設定できます。

于 2012-05-18T03:23:57.360 に答える
1

ルーティングに関する Rails ガイドには、安らかなアクションを追加するセクションがあります。

http://guides.rubyonrails.org/routing.html#adding-more-restful-actions

そこにある例は、次のように変換されます。

resources :patient_admissions do
  member do
    put 'discharge'
  end
end

/patient_admissions/1/dischargeこれはPUT で認識され、 の放電アクションにルーティングされPatientAdmissionsControllerます。

これにより、少なくともアクションのルーティングを設定できます。

于 2012-05-18T03:16:15.063 に答える