1

Rails についてさらに学び、ASP.Net 時代からのデザイン思考を壊しているので、今朝シナリオを考えていましたが、それが可能かどうかわかりませんでした。

開業医はサービスを通じて多くの治療を受けます - 逆もまた同様です

私のコントロール パネルには、開業医が詳細 (名前、連絡先情報など) を編集するための領域があり、チェックボックスを使用して治療を選択することもできます。

Practitioners _form からチェックボックスを削除したいと思います。私がこのように呼び出すことができる独自のフォームを持つ:

<%= link_to "Edit Treatments", edit_practitioner_treatments(@practitioner) %>

ただし、管理者の観点からは、開業医のオブジェクトが見えなくても治療を管理できる必要があります。

<%= link_to "Edit Treatments", edit_treatments(@treatment) %>

これには認証バリアもあります。

  • 私が見落としていた治療法を抽出するためのより簡単な解決策はありますか?
  • 時々ネストされたルートを持つことは可能ですか?
  • 私は今朝コーヒーを飲みすぎたので、現在狂気の状態にあるのでしょうか?
4

1 に答える 1

3

一般に、「許可する必要があるかどうか」よりも「これにより何かが壊れるかどうか」に基づいてパーミッション チェックを行うまったく異なるインターフェイスをユーザーに提示することが多い管理機能を検討する場合は、別のコントローラーを使用して管理領域を作成することをお勧めします。例えば:

map.namespace :admin do |admin|
  # Admin::PracticionersController
  map.resources :practicioners

  # Admin::TreatmentsController
  map.resources :treatments
end

map.resources :practicioners do |practicioner|
  practicioner.resources :treatments
end

map.resources :treatments do |treatment|
  treatment.resources :practicioners
end

すべての Admin::* コントローラは、アクションの実行を許可する前に十分に厳密な認証チェックを実行する Admin::BaseController などから継承できます。

私が見たほとんどのアプリケーションでは、ユーザー向けのフロントエンドにデザインまたはスタイルの要素があり、レイアウトはナビゲーション要素、広告、またはその他の編集コンテンツによって囲まれていることがよくあります。整理された別の管理ビューを作成し、ページごとにはるかに多くの情報を表示し、ユーザーに公開されていないディメンションで並べ替えや検索を行うことは、中規模のデータ セットを管理する場合でも非常に役立ちます。

これらの追加の管理コントローラーとそれに関連するフォームを作成するのは大変な作業のように思えるかもしれませんが、設計に注意すれば、2 つの領域の間で多くの機能 (特にページのパーシャル) を再利用できます。

于 2010-03-25T14:44:29.467 に答える