のRails 2.3.5nilのオブジェクトエラー部分にフォームが
を提出しているとき、私は選択フォームは、フォームが、私が使用している配列に対してはnilエラーを取得し提出されている場合を除き、正常に動作している問題を抱えています。 Selectタグがどのように動作しているかを理解していないし、正しいHTMLを生成するだけでなく、フォームがサブミットされたときに配列に対してnilエラーを出す。また、コントローラからロジックを取り出して部分的に直接スティックするとうまく動作します。助けてくれてありがとう。
私は「新しい」方法でこのコードを持っているコントローラでは:
<%= f.select(:directory_id, @directories, :prompt => 'Select') %>
これをレンダリング:「新しい」ビューの部分の内側
@directories = Directory.find(:all, :conditions => {:id => session[:directories_with_view_access]})
@directories.collect! {|u| [u.name, u.id]}
、私はこのコードを持っていますHTML:
<select id="card_directory_id" name="contact[directory_id]"><option value="">Select</option>
<option value="2">dir_test_1</option>
<option value="4">dir_test_2</option>
<option value="6">dir_test_3</option>
問題がある、私がフォームを送信するとき、私は次のエラーを取得する:
You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.inject
私は、コントローラの外にロジックを取り、部分的にそれを置く場合は、すべてが正常に動作します:selectタグの
<%= f.select(:directory_id, Directory.find(:all, :conditions => {:id => session[:directories_with_view_access]}).collect {|u| [u.name, u.id]}, :prompt => 'Select') %>
あなたはまったく正しいです。作成アクションで@directories declerationのコピーが問題を修正しました。私は約4ヶ月しかRailsを学習していませんが、RESTfulなルートではなく、常に読んでいます。本当にありがとう! – Reno