1

顧客、従業員、チケットの 3 つのモデルがあります。新しいチケットを作成するときに、ドロップダウン リストを使用して employee_id を選択したいのですが、このエラーが発生します

undefined local variable or method `employee' for #<#<Class:0x3f2c880>:0x3f4a070>

Extracted source (around line #16):

13: 
14:     <div class="field">
15:       <%= f.label :employee_id %><br />
16:       <%= f.select :employee_id, employee.all.map{|s| [s.name, s.id]} %>
17:     </div>
18:     <div class="field">
19:       <%= f.label :customer_id %><br />

私が理解している限り、これは従業員をグローバル変数として設定しなかったためです。ただし、コントローラーで次の行を見ました。

def new
    @employee = Employee.new

これを修正するにはどうすればよいですか?

4

2 に答える 2

1

を使用しemployee.allているのは、と呼ばれるローカル変数にアクセスすることを前提としていますemployee。これを変更するとEmployee.all、問題が解決します。

于 2013-03-20T05:04:16.800 に答える
1

次のように、コントローラー アクションでインスタンス変数を宣言します。

def new
    @employee = Employee.new
    @employees = Employee.all
end

ビューで、このインスタンス変数を使用します

<%= f.select :employee_id, @employees.map{|s| [s.name, s.id]} %>

これはおそらく、ビューから直接モデルにアクセスするよりも優れていますEmployee.all

于 2013-03-20T05:07:52.740 に答える