对就 model 中的一些 关联 一样,我们在 controller 中也可以用 belongs_to 和 Nested belongs to 如
class TasksController < InheritedResources::Base belongs_to :projectend
和
class CommentsController < InheritedResources::Base nested_belongs_to :project, :taskend
还有的东西很坑人,需要的自己看吧。
补充:
正如第一节所说的,在 View 中,你可以用 collection(index 中) 和 resource(除index 外) 辅助方法,来定制默认的实例变量。 例如 :
class ProjectsController < InheritedResources::Base protected def collection @projects ||= end_of_association_chain.paginate(:page => params[:page]) endend
InheritedResources 还有一个方法 begin_of_association_chain. 它经常用于这种情况,你有一个资源,它 belongs_to :user, 而这个 :user, 就是@current_user, 并且你的 urls 就像这样 “account/projects”. 此时你必须 @current_user.projects.find 或 @current_user.projects.
我们就可以这么写:
class ProjectsController < InheritedResources::Base protected def begin_of_association_chain @current_user endend