【发布时间】:2013-08-22 18:38:24
【问题描述】:
我是 RoR 新手 (v3.2.13),我正在构建一个新站点/应用程序,该站点/应用程序有很多登录页面,分为 6-8 个不同的布局。布局以不断变化的顺序使用相似的元素,因此我使用局部和布局继承来适当地呈现每个页面。
我的问题是我的表单(位于每个页面的顶部)也不一致(例如,虽然一个页面可能只有“姓名”和“电子邮件”字段,但另一个页面将包含一个额外的“电话”字段,第三个可能还包括“密码”、“地址”和“国家”字段等),并且为每个页面构建不同的部分似乎是一种非常浪费的方法,DRY 明智的,更不用说它是多么无效,尤其是因为我预计未来会有大量新页面。
我已经彻底研究了表单的概念,但还没有提出我认为足够好的解决方案,这可能是因为我是新手。不幸的是,我没有任何代码要展示,因为我一直等到我决定开始编码的最佳方法。
到目前为止,我想出的是在 Haml 中使用 jQuery 和条件,我理解这两种方法都很幼稚,而我将每个字段编码为自己的部分将被视为反模式(或者 - 不是 Rails 3方式)。
是否存在与此类设计问题相关的最佳实践?是否有任何我错过的在线/其他资源可以为我指明正确的方向?
谢谢!
【问题讨论】:
-
您能否提供更多关于您最终要做什么的背景信息?你的设计应该尽可能地反映意图,所以如果这些是登陆页面的各种排列,那么共享部分代码的解决方案是有意义的;相反,如果它们是具有完全不同目标的 8 页(一个注册时事通讯,另一个使用 Facebook 登录等),那么您并没有真正重复代码,而是重复使用它并且没有t 一个共享祖先(尽管抽象的表单构建器可能仍然是合适的)。
-
@coreyward,感谢您的询问:将有一个共同的祖先,即正如您所提到的,它们都是同一个通用着陆页的各种排列(它们都共享相同的页脚、页眉和逻辑)。为了回答您的问题,所有表单都旨在共享相同的目标,即将用户的详细信息发送到数据库以供将来通信。那里没什么好看的。
标签: ruby-on-rails ruby forms ruby-on-rails-3.2 partials