Rails多对多关系偶尔嵌套路线

问题描述:

由于我正在学习更多关于rails的知识,并且从ASP.Net时代打破了我的设计思维,所以我在今天上午考虑了一个场景,但不知道是否有可能这样做。Rails多对多关系偶尔嵌套路线

从业人员通过服务有许多治疗方法 - 反之亦然

在我的控制面板我有从业编辑他们的详细资料(姓名,联系方式等),也可以通过的复选框选择他们的治疗的区域。

我想从医生_form中删除复选框。拥有自己的形式,我可以呼吁这样的:

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

然而,从一个管理点我仍然需要能够在没有从业对象在望管理治疗:

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

其中也有认证障碍。

  • 有没有更容易的解决方案来提取我忽视的治疗?
  • 是否有可能在某些时候嵌套路线?
  • 今天早上我有太多的咖啡,因此目前处于疯狂状态?

通常,当考虑管理功能时,通常会根据权限检查为用户提供一个完全不同的界面,更多地基于“这会打破某些事情”而不是“您应该允许”,创建管理区域与单独的控制器。例如:

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 

所有联系:: *控制器可以从一些诸如管理:: BaseController执行足够严格的认证允许执行任何操作之前检查继承。

在我看到的大多数应用程序中,面向用户的前端具有设计或风格元素,它们的布局通常由导航元素,广告或其他编辑内容包围。创建一个整洁的单独管理视图,每页显示更多信息,并且允许在未暴露给用户的维上进行排序或搜索,在管理中等规模的数据集时非常有用。

尽管制作这些额外的管理控制器及其关联的表单可能看起来像很多工作,但如果您在设计时非常小心,则可以在两个区域之间回收很多功能,尤其是页面偏差。

+0

哇,这是一个伟大的方式分裂两个领域,爱它!我的思维方式显然还不符合ror的成语 - 你从哪里学习设计方法,还是仅仅从经验中解决问题?再次感谢您的帮助 - 帮助我! – 2010-03-26 09:19:31

+0

这是建立十几个严重Rails站点的结果。你看到这样的模式。希望它也适合你。 – tadman 2010-03-29 02:19:53