我正在开发一个Rails项目。我被建议制作一个控制器,Home_Controller,它将处理网站的请求。我有两个不同的模型,Post和Person(顺便说一句,完全独立)。我想在Home Controller中定义像new
这样的方法,但是编写像new_person
和new_post
这样的控制器方法似乎违反惯例。
感谢您的帮助!
答案 0 :(得分:3)
IS 针对MVC模式,因为Home_Controller
应仅控制Home
模型。
您应该有一个PeopleController
和一个PostsController
来区分您的疑虑。
话虽如此 - 拥有你要求的系统并不是闻所未闻的......你只需要在routes.rb
创建自己的自定义路线以匹配你的想。例如,您的HomeController可能看起来像,
class HomeController < ApplicationController
...
def new_person
@person = Person.create
end
def new_post
@post = Post.create
end
end
路线看起来像,
get 'people/new' => 'home#new_person'
get 'post/new' => 'home#new_post'
主要问题是当你偏离这个约定时,会遇到非常难以理解且难以维护的代码。特别是当你在1个文件中有多手牌时。
答案 1 :(得分:1)
继续说可能。很难确切地知道在上下文之外,但是,这会违反惯例。
与常规问题分开,是可维护性和可读性,并且有一个庞大的控制器文件将会开发出来。