在 Rails 上的 Ruby 中,执​​行 rails 应用程序的流程应该是什么

In Ruby on Rails what should be the flow for executing rails application

我是 Ruby Rails 的新人,我对 Ruby rails 的申请有点困惑。我已经做了所有这些事情。

routes.rb

Recruitment::Application.routes.draw do
  get 'hr/internal_employee_page', controller: 'hr', action: 'internal_employee_page'
  get 'hr/permanent_consultant_page' => 'hr#permanent_consultant_page', as: :permanent_consultant_page
end 

hr_controller.rb

class HrController < ApplicationController

  def internal_employee_page
    @employees = OfferLetter.all
    # render :text => @employees.inspect        
  end

  def employee_details
    @employees = OfferLetter.all
  end
end

_hr_page.html.erb

<%= render 'hr/dashboard'%> <%= render 'hr/internal_employee_page'%>

_internal_employee_page.html.erb

<div id="job_details">
    <%= render "hr/employee_details" %>
</div>

_employee_details.html.erb

<% @employees.each do |emp| %>
    <h3> Employee Name : <%= emp.full_name %> </h3>
<% end %>

然后我得到这个错误:

undefined method `each' for nil:NilClass.

当我跟踪时,我发现 hr_controller.rb 没有执行。如果我注释掉 hr_controller.rb 中的所有内容,那么我会得到同样的错误。所以请告诉我我做错了什么以及解决方案是什么。

Rails 查找与控制器方法同名的视图。从 internal_employee_page.html.erb 文件的名称中删除下划线。您使用下划线表示部分。

internal_employee_page.html.erb

<div id="job_details">
  <% @employees.each do |emp| %>
    <%= render partial: "hr/employee_details", locals: {emp: emp} %>
  <% end %>
</div>

_employee_details.html.erb

<h3> Employee Name : <%= emp.full_name %> </h3>

可能值得一读 the guide 关于渲染布局和局部的内容。

零错误表示活动记录调用 OfferLetter.all 失败。您是否设置了 d/b table、运行 迁移等?在 rails 控制台中尝试 运行 执行该命令,看看会得到什么。