使用干净的数据库为我的Hobo项目运行db:setup
时收到错误。我有两个模型,A和B,其中B通过单表继承扩展A.创造一切都有效。但是,如果我从一个新的数据库开始,rake会因错误而失败:
$ rake db:setup
...
rake aborted!
Table as does not exist
以下是我重复此步骤的步骤。首先,创建Hobo应用程序:
$ hobo testproject
创建第一个模型A
:
$ ruby script/generate hobo_model_resource a name:string type:string
设置database.yml,生成并执行迁移:
$ ruby script/generate hobo_migration
创建第二个模型B
:
$ruby script/generate hobo_model_resource b
修改B
模型以扩展A
:
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
生成并运行迁移:
$ ruby script/generate hobo_migration
瞧。一切正常。现在,如果我删除所有表并运行db:setup
,它将失败:
$ 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.yml
和test/fixtures/bs.yml
,但这没有帮助。
hobo 0.9.103
导轨2.3.5
耙0.8.7
jruby 1.4.0RC1
有什么建议吗?
答案 0 :(得分:1)
看起来这是Hobo的一个错误:
http://groups.google.com/group/hobousers/browse_thread/thread/2160e78762791946
据马特琼斯说:
跟踪具有自动范围代码,试图查看inherited_without_inheritable_attributes是否为列,该列到达了 数据库和死亡。
他建议补充:
return unless table_exists?
在column
方法的最开始(hobofields/lib/hobo_fields/model_extensions.rb
的第211行)。
答案 1 :(得分:0)
我遵循了你所有的步骤,一切正常。你试过rake db:schema:load
吗?
hobo 0.9.104
rails 2.3.5
rake 0.8.6
ruby 1.8.6