我刚刚完成了创建多个模型和一个必须单独写他们所有的属性1)在Rails的ActiveRecord 2)在Rails数据库迁移,以及3)Backbone.js的模型。 我不觉得很干。 我认为在干涸这个问题会切换到Node.js的,我可以在背面和前端(理想情况下重复使用相同型号Backbone.js的),但什么有关数据库架构的使用CoffeeScript的第一步? 我知道我可以创建一个模型属性生成SQL的框架,但在此之前我走上了这方面的努力,我想,如果这样的事情已经存在或正在开发中。
这也将是真棒,如果这个框架可以统一视图和控制器,这样我就没有应用程序/视图,应用程序/控制器,应用程序/资产/ JavaScript的/视图,应用程序/资产/ JavaScript的/路由器,并且像所有类似的定义事情在不同的地方。
退房德比 ,下Node.js的框架积极的发展 ,它试图统一视图和控制器(以及更多):
[德比]运行在服务器和浏览器相同的代码,并且它会自动同步数据。 德比负责模板的渲染,包装,以及模型 - 视图绑定的开箱即用。 由于所有功能都设计为一起工作,不需要重复代码和胶水代码。
我在建设有德比小嗜好应用程序,到目前为止,它一直乐趣和心灵的挑战性。 统一的新的世界有它自己的物理..
有一点要注意的是德比是建立在之上的赛车 ,一个“实时模型同步引擎” 你可能会发现它“重”如果你希望这样的事情缝合在一起Backbone.js的,快递和一些数据库层的光胶水代码。
编辑 :我还没看着密切其他框架:
- 流星 (node.js中)
- ClojureScript一 (ClojureScript)
对于模型,你可以简单地创建一个基类的继承它。 你只需要调用set_table_name
在派生类。 我已经得到了离开与此有关。 它的优点是你可以在派生类调整功能。 例:
应用程序/模型/ widget.rb:
class Widget < ActiveRecord::Base
def some_common_method
# ...
end
end
应用程序/模型/ blue_widget.rb:
class BlueWidget < Widget
set_table_name "blue_widgets"
# special methods, if any
end
等等
对于迁移,只是定义了常见的表列的功能。 例如:
def common_table_columns(t)
t.integer :id
t.stirng :some_string
# etc
end
create_table(:table1) { |t| common_table_columns(t) }
[:table2,:table3,:table4].each do |name|
create_table(name) { |t| common_table_columns(t) }
end
create_table :table5 do |t|
common_table_columns(t)
t.string :extra
end
无法为Backbone.js的讲话(刚才),但我100%相信,可以实现同种的重复代码消除。 JavaScript有同样多的动态性红宝石。
说了这么多,为什么你有几个相同的表? 您是否使用了正确的解决方案,以正确的问题呢?