2011-06-16 56 views
4

有没有一种方法可以作为模型的表访问我的数据库视图?Rails是否可以识别数据库视图?

+0

我没有得到问题 – fl00r 2011-06-16 12:33:39

+5

基本上他/她想知道你是否可以使用带有ActiveRecord的VIEW。即'CREATE VIEW some_view AS SELECT * FROM tbl'。因为AR是反思性的,所以它可能不理解它。 DM(DataMapper)可以很好地处理它,因为它没有试图反思。 – d11wtq 2011-06-16 12:39:03

+1

我*想*他问他是否可以生成一个模型,而不是依赖于一个表,使用数据库视图(而不是MVC/Rails视图)。为了确保我清楚(而不是教学)一个视图生成的一些SQL和内置到数据库模式,因此它可以被视为SQL交互中的表... – jaydel 2011-06-16 12:40:00

回答

1

我发现,似乎可以解释的事情做好,并且还提供了“良好”的消息在db views in rails此链接...

0

是的,你可以使用视图就好了,他们的行为就像在ActiveRecord的表。我不知道你在使用什么数据库,但是我在Oracle中使用它们,并没有遇到任何问题。

唯一的区别是,如果你想让你的迁移自动创建它们,你必须放弃典型的create_table,而是执行SQL语句来创建它。

+0

我使用的是oracle,但是当我在模型中编写'set_table_name:myview'时出现问题,并在我的控制台中检查它是否显示'表不存在' – usmanali 2011-06-17 05:21:33

+0

@usmanali,你也必须为该视图授予适当的权限,或者其行为不存在。 – 2011-06-18 12:25:20

+0

您使用的是activerecord-oracle_enhanced驱动程序吗? – 2011-06-18 12:25:55