dan*_*anv 2 views ruby-on-rails models legacy-database
我是ruby和rails的新手,我很难将MVC技术与数据库视图结合起来.我正在处理一个遗留数据库,它有几个用于生成报告的视图.
我迷路的地方是如何实际使用数据库视图.它应该放在模型中吗?如果是这样的话究竟是什么样子?
例如,遗留数据库有一个名为qryTranscriptByGroup的视图.它在遗留应用程序中用于SQL语句,例如"SELECT*FROM qryTranscriptByGroup WHERE group ='test_group'".这会返回少量通常小于100的记录.
如果我创建一个模型,Transcript,我如何定义像Transcript.find_by_group(group)这样的方法?同样,似乎我可能需要阻止任何其他"查找"方法,因为它们在此上下文中将无效.
还有一个事实是视图是只读的,我需要阻止任何创建,更新或销毁它的尝试.
也许我完全以错误的方式解决这个问题.最重要的是,我需要从几个表(模型?)中获取信息,这些表代表有关用户的信息(成绩单).实际上是一个或多个用户(成绩单复数).
-谢谢!
您可以像普通模型一样使用数据库视图.
在你的情况下:
class Transcript < ActiveRecord::Base
set_table_name "qryTranscriptByGroup"
set_primary_key "if_not_id"
end
Run Code Online (Sandbox Code Playgroud)
然后查询:
Trascript.find_by_group('test_group')
Run Code Online (Sandbox Code Playgroud)
没有你需要申报任何东西.
Rails使用method_missing方法神奇地生成find_by_column_name方法.
对于创建/更新/删除操作,您只需删除它们或不在控制器中创建它们.
| 归档时间: |
|
| 查看次数: |
1009 次 |
| 最近记录: |