【发布时间】:2017-05-22 22:06:18
【问题描述】:
我正在创建一个连接表,它将显示哪个员工卖了哪个漫画。当我输入我的员工姓名时,它给了我这个错误
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
这是我的输入视图“employeenamein”的代码
<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 %>
这是我的输出视图代码
<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
我做错了什么?
【问题讨论】:
-
您必须有一个
product而没有一个name_id。最简单的做法是查看您的数据并更新该字段。 -
对不起,我不知道你在说什么。我应该做些什么?我是 Ruby on Rails 的新手。在我的 Products 表中,我有 2 个条目,其中包含一个名称和一个 Id,并且没有任何内容是空白的。
-
@AlejandroMontilla 我多年来一直在编写 RoR 代码,但不知道你在做什么。
标签: ruby-on-rails ruby-on-rails-3 cloud9-ide cloud9