Ruby on rails Rails:在一个控制器中处理两个模型的CRUD操作是一种不好的做法吗?

Ruby on rails Rails:在一个控制器中处理两个模型的CRUD操作是一种不好的做法吗?,ruby-on-rails,crud,Ruby On Rails,Crud,我正在从事一个Rails项目。我被建议做一个控制器,家庭控制器,它将处理站点的请求。我有两个不同的模式,职位和人是完全独立的。我想在Home Controller中定义new之类的方法,但编写new_person和new_post之类的控制器方法似乎违反了惯例 谢谢你的帮助 我会继续说大概。在上下文之外很难确切地知道,但是是的,这将违反惯例 与常规问题不同的是可维护性和可读性,拥有一个庞大的控制器文件将是开发的地狱。继续说,可能吧。在上下文之外很难确切地知道,但是是的,这将违反惯例 与常规问题不

我正在从事一个Rails项目。我被建议做一个控制器,家庭控制器,它将处理站点的请求。我有两个不同的模式,职位和人是完全独立的。我想在Home Controller中定义new之类的方法,但编写new_person和new_post之类的控制器方法似乎违反了惯例

谢谢你的帮助

我会继续说大概。在上下文之外很难确切地知道,但是是的,这将违反惯例

与常规问题不同的是可维护性和可读性,拥有一个庞大的控制器文件将是开发的地狱。

继续说,可能吧。在上下文之外很难确切地知道,但是是的,这将违反惯例

与常规问题不同的是可维护性和可读性,拥有一个庞大的控制器文件将是开发的地狱。

这与MVC模式背道而驰,因为您的家庭控制器应该只控制家庭模型

您应该有一个PeopleController和一个PostsController来分离您的关注点

话虽如此,拥有你所要求的系统并非完全闻所未闻。。您只需在routes.rb中创建自己的自定义路由即可满足您的需要。例如,您的HomeController可能看起来像

class HomeController < ApplicationController
  ...
  def new_person
    @person = Person.create
  end
  def new_post
    @post   = Post.create
  end
end
主要的问题是,当您偏离这个约定时,您会遇到非常不可读且难以维护的代码。特别是当你在一个文件中有多个手的时候

这与MVC模式相反,因为您的Home_控制器应该只控制Home模型

您应该有一个PeopleController和一个PostsController来分离您的关注点

话虽如此,拥有你所要求的系统并非完全闻所未闻。。您只需在routes.rb中创建自己的自定义路由即可满足您的需要。例如,您的HomeController可能看起来像

class HomeController < ApplicationController
  ...
  def new_person
    @person = Person.create
  end
  def new_post
    @post   = Post.create
  end
end
主要的问题是,当您偏离这个约定时,您会遇到非常不可读且难以维护的代码。特别是当你在一个文件中有多个手的时候