我正在通过构建一个为用户提供不同类型练习的应用程序来练习我的Rails开发技能。很可能是针对不同主题的多项选择问题。
检查问题是否得到正确回答的一种方法是在模型上使用验证。但是,我并不需要保存结果,最终我可能会创建许多不同的模型,因为每个问题都有自己的验证来检查每个答案。
是否可以为每个主题区域创建新的Controller操作?是
我还能如何组织这个?
答案 0 :(得分:0)
http://www.enode.com/x/markup/tutorial/mvc.html
使用MVC模式,控制器通常可以控制模型保存的数据。
将大部分逻辑保留在Controller中是一种很好的形式。我不确定你对一个新的Controller动作的意思,但是你可能想要做的是在你的View中设置某种形式(参见form_for)并将其激活给Controller。控制器会进行验证或您需要做的任何事情。
这应该会有所帮助: http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html
例如,您可能在视图中有一个表单(例如测验),在Controller中计算用户的分数,并将其保存为数据库中用户的字段。
答案 1 :(得分:0)
关于在哪里放置逻辑的争论与涉及的模式本身一样古老。对于MVC,我决定问自己:
我的一般建议:将业务逻辑放在"低" (底部:db,然后是模型,然后是控制器,然后是视图)尽可能不违反以下任何约束:
一般情况下:如果有疑问,请插入控制器。 ;)