项目MVC结构的问题

时间:2010-08-18 04:46:30

标签: ruby-on-rails ruby model-view-controller

在我的项目中,我有大约20个带有许多不同<input>的html表单。这个<input>在每种形式中都是独一无二的,它们之间不会重复。对于每个表单,都有一个脚本从表单中获取数据,生成特定文件,然后将其推送到浏览器。就是这样。没有数据库,管理员,登录/密码和其他常见的网络应用程序。

所以例如在php中,项目结构可以是这样的:

形式/

-------&GT; form1中/

---------------&GT; index.html的

---------------&GT;脚本/

-----------------------&GT;的index.php

-------&GT;窗口2 /

---------------&GT; index.html的

---------------&GT;脚本/

-----------------------&GT;的index.php

等等。它非常清楚,它使得漂亮的网址如下:

www.website.com/forms/form1

但是在Ruby-on-Rails中有一个MVC模式。我不知道如何组织这样的项目结构。怎么做对了?毕竟我不应该制作20个不同的控制器,对吗?

2 个答案:

答案 0 :(得分:0)

是的,你做了20个控制器。与PHP结构中有20个script / index.php文件的方式大致相同。导轨结构看起来像这样。

app/
    controllers/
        form1s_controller
        form2s_controller
        .....
        formns_controller
    view/
        form1/
            new.html.erb
        form2/
            new.html.erb
        ......
        formn/
            new.html.erb
        layouts/
            application.html.erb

控制器具有您要执行的每个操作的方法,例如新的,编辑等

layouts/application.html.erb文件将包含所有网页上一致的所有标记。

最后,不要试图对抗结构。由于惯例,它可以实现最少的代码,如果你尝试创建自己的结构,你将创造一个痛苦的世界。

答案 1 :(得分:0)

由于表单没有数据库后端,我会创建一个FormsController,包含20个方法(form1,form2,form3,...)。

您的网址看起来几乎相同\forms\form1\forms\form2 ...

即使您使用20个控制器,ruby中有很多方法可以删除重复的代码。因此,即使在普通的MVC中,我也有140个模型的应用程序,同样多的控制器,大多数控制器只有一行,视图完全通用。

仅仅因为PHP中的某个解决方案似乎很简单,并不意味着不存在更好的解决方案。比如MVC。它可能似乎会导致更多的代码,更多的文件,更多的工作,但结构是有充分理由的,它可以干净地分离问题,每个文件本身变得更加清晰和易于理解。