Rails无法识别现有数据库

时间:2012-01-06 14:22:08

标签: ruby-on-rails

我试图使用现有的(不是rails-made)mysql数据库来设置一个简单的CRUD。我使用scaffold来设置必要的文件,并编辑'_form'文件以匹配我的表。

但是当我在浏览器中打开网站并单击“新建”时,请填写表单,单击“sibmit”,我收到错误:NoMethodError in ContactsController#create - undefined method名称为nil:NilClass`

好像它不识别数据库,对吧?并且有一个匹配的模型因为我使用了脚手架。

有什么建议吗?


更新


我无法运行rake db:migraterake db:schema:load,因为数据库已经存在。

如果我转到控制台并输入Contact(我正在使用的表的名称),则会显示NameError: uninitialized constant Contacts,但如果我输入Contact.new,则表示#<Contact idContact: nil, name: nil, address: nil, email: nil, phones: nil, investment_advisor: nil>表示它找到表,因为那些是表的列

1 个答案:

答案 0 :(得分:1)

当您获得blah blah blah ... nil:NilClass时,如果您希望某个值不为零,则会引用nil个对象。调试,然后从那里开始。

除此之外,处理现有数据库应该没问题,只要你要么恰当地命名你的模型(以匹配现有的表名,所以其余的自动ActiveRecord东西都可以工作),or specify the table names in the models在现有数据库不遵循Rails命名约定的情况。