多个资源相同的控制器/视图

问题描述:

我有一个用Rails编写的工作流程应用程序,并且有多个用户将经历的提示。当这些提示/手动操作“继续”时,时间戳将针对工作流模型进行存储。多个资源相同的控制器/视图

代码看起来像这样

class Workflow < ActiveRecord::Base 

end 

class OpenBook < ActiveRecord::Base 
    belongs_to :workflow, :polymorphic => true 
end 

class ReadFirstPage < 
    belongs_to :workflow, :polymorphic => true 
end 

目前每个工作流项目(OpenBook),并吐出了一些文字(在模型中设置),并在视图中的前进/后退按钮。这些工作项目的控制器也做类似的事情(新的,完成的,编辑,继续,倒带)。

理想情况下,我想只使用相同的控制器和视图,只是改变模型。是我能用路线做的事吗?

resources :open_books, :controller => "workflow_item"

林不知道我怎么会去在控制器中得到正确的分配。

或者我只是做这个完全错误,我应该使用助手?

对于每个从共同父项继承的特定对象类型,使用一系列控制器可能会更容易一些。通过这种方式,大部分重复都可以在只有儿童表达差异的基类中进行。

为了确保您的模板正确地呈现,您可能需要为它们指定的完整路径,或者它会寻找定制版本:

def index 
    # ... 
    render(:template => 'parent/index') 
end 

通常这是多余的,但在你的情况下,你可能需要它或者它会默认显示不存在的子模板。