2009-06-15 8 views
1

私は足場でレールを生成し、通常のCRUDファイルを作成します。私のビューでは、new.html.erbにあるフォームをコピーしてindex.html.erbに貼り付けるので、インデックスから新しいレコードを作成できます。私がそれをすると、私が何をしていても、私は次のエラーを一貫して受け取ります。Whiny Nils in Rail

Called id for nil, which would mistakenly be 4 -- if you really wanted 
the id of nil, use object_id 

私はウェブ上ですべての回答を探していて飽き飽きしています。インスタンス変数、大文字、グローバル変数などの名前を変更しようとしましたが、Railsにはエラー・ドキュメント・ライブラリがありません。誰も助けることができますか?

+6

を持っていますあなたのコードを投稿してください。 –

+0

私は同じ問題を抱えていますが、解決策がわかりません – ecleel

答えて

6

コントローラに必要なオブジェクトがすべてありますか?それはsomething.idが呼び出されているように見えますが、あなたのインデックスアクションには何も存在しません。エラーメッセージ全体を見てください。どの行がそれを引き起こしているのかを知っていなければなりません。ソースファイル内のその行が不足している変数をチェックしてください。

2

あなたのコントローラでは、新しいコードをインデックスに追加する必要があります(これは@model = Model.newのようなものです)。またはそれ以上:名前がexpose_newなどのプライベートメソッドを作成し、共通コードをそこに移動してbefore_filter :expose_new, :only => [:index, :new]を追加します。

ただ、サイドノート..

私があなただったら、私は新しいでフォームのうち部分的に作ると思いますし、それらすべての場合インデックスと新しい(そしてかなり可能編集の両方でそのレンダリング)が等しいので、あなたがそれをコピー&ペーストする必要はありません。

だから、あなたは、フォームを含むもの_form.html.erbになってしまいますし、新しいインデックスに、あなたは<%= render('form') %>

+0

「新しい」コードと「作成」メソッドのコードを「インデックス」メソッドにネストしましたが、機能しません。特に何か他のことを意味しましたか? –

+0

インデックスアクションとインデックスビューのコードを投稿できますか? – mikej