首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有单表继承问题的Rails和Hobo

带有单表继承问题的Rails和Hobo
EN

Stack Overflow用户
提问于 2010-01-22 07:43:31
回答 2查看 704关注 0票数 1

当我使用干净的数据库为我的Hobo项目运行db:setup时,我得到了一个错误。我有两个模型,A和B,其中B通过单表继承扩展了A。创造一切都是可行的。但是如果我从一个新的数据库开始,rake会失败,并显示一个错误:

代码语言:javascript
复制
$ rake db:setup
...
rake aborted!
Table as does not exist

以下是我重现它所经历的步骤。首先,创建Hobo应用程序:

代码语言:javascript
复制
$ hobo testproject

创建第一个模型A

代码语言:javascript
复制
$ ruby script/generate hobo_model_resource a name:string type:string

设置database.yml,生成并执行迁移:

代码语言:javascript
复制
$ ruby script/generate hobo_migration

创建第二个模型B

代码语言:javascript
复制
$ruby script/generate hobo_model_resource b

编辑B模型以扩展A

代码语言:javascript
复制
class B < A

  # --- Permissions --- #
  def create_permitted?
    acting_user.administrator?
  end

  def update_permitted?
    acting_user.administrator?
  end

  def destroy_permitted?
    acting_user.administrator?
  end

  def view_permitted?(field)
    true
  end
end

生成并运行迁移:

代码语言:javascript
复制
$ ruby script/generate hobo_migration

瞧。一切正常。现在,如果我删除所有表并运行db:setup,它将失败:

代码语言:javascript
复制
$ rake db:setup
...
rake aborted!
Table as does not exist

按照Ruby on Rails Single Table Inheritance (STI) and unit test problem (with PostgreSQL)的建议,我尝试删除了test/fixtures/as.ymltest/fixtures/bs.yml,但没有任何帮助。

流浪汉0.9.103

rails 2.3.5

rake 0.8.7

jruby 1.4.0RC1

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-23 23:44:24

看起来像是Hobo中的一个bug:

http://groups.google.com/group/hobousers/browse_thread/thread/2160e78762791946

根据马特·琼斯的说法:

跟踪让自动作用域代码尝试查看inherited_without_inheritable_attributes是否是列,这将命中

DB和。

他建议添加以下内容:

代码语言:javascript
复制
return unless table_exists? 

column方法的最开始(hobofields/lib/hobo_fields/model_extensions.rb的第211行)。

票数 1
EN

Stack Overflow用户

发布于 2010-01-23 06:32:43

我遵循了你的所有步骤,一切都很顺利。你试过rake db:schema:load吗?

代码语言:javascript
复制
hobo 0.9.104
rails 2.3.5
rake 0.8.6
ruby 1.8.6
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2113881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档