只是一种理论,不确定它在实际应用中如何工作:
创建名为ActiveRecord
的models
,按照惯例要求,例如对于表aaa_bbb_ccc_ddd
,您将创建一个模型AaaBbb
并将此模型映射到您的表:
class AaaBbb < ActiveRecord::Base
self.table_name = "aaa_bbb_ccc_ddd"
end
或者一个更加人性化的例子:
class AdminUser < ActiveRecord::Base
self.table_name = "my_wonderfull_admin_users"
end
现在你的路由中会有AaaBbb
作为资源,这意味着你将拥有如下url:
.../aaa_bbb/...
如果您想在URL中使用表名name,我想您可以重写路由:
get 'aaa_bbb_ccc_ddd/:id', "aaa_bbb#show", as: "aaa_bbb"
再次说明,这只是一个可能有所帮助的理论。虽然我还没有处理过这样的情况,但我会从这里开始。
编辑
自动从数据库创建模型的方法:
但我认为这将按照Rails规则创建具有奇怪名称的模型,您将不得不在应用程序中使用它们作为资源。
如果您想使用与表名不同的模型名称,我在SO上找到了一个不错的模板:
class YourIdealModelName < ActiveRecord::Base
self.table_name = 'actual_table_name'
self.primary_key = 'ID'
belongs_to :other_ideal_model,
:foreign_key => 'foreign_key_on_other_table'
has_many :some_other_ideal_models,
:foreign_key => 'foreign_key_on_this_table',
:primary_key => 'primary_key_on_other_table'
end
刚刚从Rails转到Django,让你的生活更加愉快,也让你的工作变得正常:
$ python manage.py inspectdb my_table_without_existing_model > some_new_model.py
够了。只需要两秒钟的工作 :)
attr_accessible
的内容,因此我希望有一些东西可以自动生成所有的模型代码。 - Derek