在多个模型和控制器中使用相同的代码(或仅替换模型名称)
我对 Rails 相当陌生,并且尝试对我的数据进行非常干燥的处理。
我有一些完全相同的模型、控制器和视图。模型使用 id、name,控制器仅通过 id 进行检索,并且始终从另一个表获取相同的对象,并且操作也完全相同。
---更新 ---这些表作为遗留系统的一部分存在,因此我无法仅使用单个表重新创建它。
看起来不干(湿?),所有 3 个模型、3 个控制器和 9 个视图都做着完全相同的事情。
对于这些实例,有没有办法将表名作为变量传递?
如果在 Rails 中不推荐这样做,你能解释一下为什么不这样做吗?
I'm fairly new to Rails and try to be very dry with my data.
I have a few models, controllers and views which are EXACTLY the same. The models use id, name, the controllers retrieve only via the id, as well as always getting the same objects from another table, and the actions are exactly the same too.
---UPDATE ---The tables exist as part of a legacy system, so I can't recreate it with just a single table.
It seems not-DRY (wet?) to have all 3 models, 3 controllers and 9 views which do exactly the same thing.
Is there a way to pass in a table name as a variable, for these instances?
If this is not recommended in rails, can you explain why not?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
简单的方法是为这些视图创建公共部分并渲染它们。
如果你想干燥你的控制器/模型,你可以将你的逻辑提取到另一个类,它们都愉快地继承/需要。
Easy way to dry this up a bit is to create common partials for these views and render them.
If you want to dry up your controllers/models, you can extract your logic to another class which they all happily inherit from/require.