2012-01-06 9 views
0

既存の(レール製ではない)mysqlデータベースを使用して簡単なCRUDを設定しようとしています。私は足場を使って必要なファイルをセットアップし、 '_form'ファイルを編集して私のテーブルとマッチさせました。Railsが既存のデータベースを認識しません

しかし、私は、ブラウザでサイトを開いて、「新しい」をクリックし、フォームに必要事項を記入、sibmitをクリックして、私はエラーを取得:nilのためのNoMethodError in ContactsController#create - undefined method名」:NilClass`

それは認識doesntのかのようにデータベース、右?足場を使っているので、マッチングモデルがあります。

提案がありますか?


UPDATE


データベースがすでに存在しているので、私はrake db:migrateまたはrake db:schema:loadを実行傾けます。

私はContact(での作業テーブルイムの名前を)コンソールと入力して行く場合、それはNameError: uninitialized constant Contactsを言うが、私はContact.newを入力すると、それはそれらがテーブルの列

+0

rake db:migrateを実行したとしますか? rake db:schema:load?を実行できますか?レールコンソールを開いてContact.newと入力するとどうなりますか? –

+2

ここに#createメソッドを投稿することをお勧めしますが、その外観から、あなたは何らかの方法でContactをインスタンス化していません。 – muffinista

+0

コントローラーとフォームコードから更新/作成アクションを表示してください。モデルやdbテーブルの構造は、理由を見つけるために見てうれしい – alony

答えて

1

するたびにされているので、それがテーブルを見つけるん意味#<Contact idContact: nil, name: nil, address: nil, email: nil, phones: nil, investment_advisor: nil>を語りますblah blah blah ... nil:NilClassを取得すると、値がゼロにならないと期待しているときにnilオブジェクトを参照しています。それをデバッグし、そこから行ってください。

それ以外の場合は、既存のテーブル名と一致するようにモデルを適切に名前を付けるかぎり、既存のデータベースを処理することは問題ありません。or specify the table names in the models既存のデータベースはRailsの命名規則に従いません。

+0

Hmm ..レールプロジェクトがすべてのテーブルを認識するために必要なコマンドはありますか? –

+0

モデル自体にテーブル名を指定する必要があります(リンクを参照)。私の推測では、あなたの既存のDBはRailsの命名規則に従わないので、Railsをちょっと手伝って "このモデル名を挿入するとxyzというテーブルに接続する必要があります" – jefflunt

+0

私はかなり確信していますモデルは正しいが、正しい命名規則をどのように見つけ出すのだろうか?テーブル名の最初の文字は大文字ですが、それは問題ですか? –

関連する問題