Ruby on rails I';我得到了一个命名者,我';我不知道为什么

Ruby on rails I';我得到了一个命名者,我';我不知道为什么,ruby-on-rails,ruby-on-rails-3,cloud9-ide,cloud9,Ruby On Rails,Ruby On Rails 3,Cloud9 Ide,Cloud9,我正在创建一个联接表,它将显示哪个员工销售了哪个漫画。当我输入我的员工姓名时,它给了我这个错误 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(@

我正在创建一个联接表,它将显示哪个员工销售了哪个漫画。当我输入我的员工姓名时,它给了我这个错误

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”的代码


我做错了什么?

你真的把它复杂化了

要查看REST中的数据,可以使用GET请求,而不是post。名字是。。。不太好

# routes.rb
resources :employees do
  resouces :sales, only: :index, module: :employees
end

只需创建一个员工列表,并为每个员工创建一个链接:

<% @employees.each do |e| %>
  <%= link to e.name, employee_sales_path(e) %>
<% end %>

或者使用带有。但真的是你的水平

# app/views/employees/sales/index.html.erb
# use CSS instead of <center> and missusing <br> tags - it's not 1998
<h1>These are the Sales for <%= @employee.name %></h1>
<table> 
  <tr>
    <th>Comic Name</th>
    <th> Comic ID</th>
  </tr>   
  <% @sales.each do |s| %>     
  <tr>
    <td><%= s.product.name_id %></td>
    <td><%= s.product.id_no %></td>
  </tr>
  <% end %> 
</table>
#app/views/employees/sales/index.html.erb
#使用CSS而不是和误用标签-这不是1998年
这是我们的销售单
喜剧名称
漫画ID

您必须有一个
产品
而没有
名称\u id
。最简单的方法就是查看数据并更新该字段。很抱歉,我不知道你的意思。我该怎么办?我是RubyonRails的新手。在我的产品表中,我有两个条目,都有一个名称和一个Id,没有一个条目是空的。@AlejandroMontilla我已经编写了RoR多年,不知道你在说什么。
# routes.rb
resources :employees do
  resouces :sales, only: :index, module: :employees
end
# app/controllers/employees/sales_controller.rb
class Employees::SalesController
  # /employees/:employee_id/sales
  def index
    @employee = Employee.includes(:sales)
                        .find(params[:id])
    @sales = @employee.sales
  end
end
<% @employees.each do |e| %>
  <%= link to e.name, employee_sales_path(e) %>
<% end %>
# app/views/employees/sales/index.html.erb
# use CSS instead of <center> and missusing <br> tags - it's not 1998
<h1>These are the Sales for <%= @employee.name %></h1>
<table> 
  <tr>
    <th>Comic Name</th>
    <th> Comic ID</th>
  </tr>   
  <% @sales.each do |s| %>     
  <tr>
    <td><%= s.product.name_id %></td>
    <td><%= s.product.id_no %></td>
  </tr>
  <% end %> 
</table>