저는 Ruby on Rails를 처음 접했습니다. Ruby on Rails 응용 프로그램에서 약간의 혼란이 있습니다. 나는이 모든 일을했다.
route.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>
레이아웃 및 부분 렌더링에 관한 가이드 를 읽어 볼 가치가 있습니다 .
nil 오류는 활성 레코드 호출 OfferLetter.all이 실패했음을 의미합니다. d / b 테이블을 설정하고 마이그레이션을 실행 했습니까? Rails 콘솔에서 해당 명령을 실행하고 결과를 확인하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다