在我的项目中,我有大约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个不同的控制器,对吗?
答案 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。它可能似乎会导致更多的代码,更多的文件,更多的工作,但结构是有充分理由的,它可以干净地分离问题,每个文件本身变得更加清晰和易于理解。