0
어떤 직원이 어떤 만화를 판매했는지 보여주는 조인 테이블을 만들고 있습니다. 내 직원의 이름을 입력 할 때 그것은 나에게이 오류 여기NoMethodError가 발생하고 이유가 확실하지 않습니다.
NoMethodError in Showemployeesales#employeesaleout
undefined method `name_id' for nil:NilClass
을주고 것은 내 컨트롤러 내 코드입니다
다음def employeesaleout
@employee_name = params[:employee_name_in]
r = Employee.find_by_name_id(@employee_name)
@sale_list = r.sales
end
내 코드는
<h1>Showemployeesales#employeenamein</h1>
<p>Find me in app/views/showemployeesales/employeenamein.html.erb</p>
<%= form_tag(showemployeesales_employeesaleout_path, :controller =>
"showemployeesales", :action => "employeesaleout", :method => "post") do
%>
<div class="field">
<%= label_tag :Employee_Name %><br />
<%= text_field_tag :employee_name_in %>
</div>
<div class="actions">
<%= submit_tag "Submit Employee Name" %>
</div>
<% end %>
"employeenamein"내 입력보기위한 것입니다
내 출력보기에 대한 내 코드는 다음과 같습니다.
<center><h1>These are the Sales for <%= @employee_name %> </h1></center>
<br /> <br />
<center><table width = 65% border = 1>
<tr> <th> Comic Name </th><th> Comic ID </th></tr>
<% @sale_list.each do |m| %>
<tr> <td> <%= m.product.name_id %> </td> <td> <%= m.product.id_no %>
</td></tr>
<% end %> </table> </center><br /> <br />
내 스키마 내가 잘못 뭐하는 거지
create_table "products", force: :cascade do |t|
t.string "name_id"
t.integer "id_no"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
에서
그리고 내 제품 테이블?
'name_id'가없는'product'가 있어야합니다. 가장 간단한 방법은 데이터를보고 해당 필드를 업데이트하는 것입니다. –
미안하지만 무슨 일이 일어나고 있는지 모르겠다. 내가 뭘해야하니? Ruby on Rails는 상당히 새로운 기능입니다. 내 Products 테이블에는 이름과 ID가있는 2 개의 항목이 있으며 아무것도 공백이 아닙니다. –
@AlejandroMontilla 저는 RoR을 수년간 코딩 해왔고 여러분이 무엇을 얻고 있는지 전혀 모릅니다. – max