내 인덱스 액션을 내보기로 전달할 수없는 이유가 확실하지 않습니다. 기본적으로 "최근 작업"이라고 불리는 부분이있는 "작업"이라는 컨트롤러가 있는데 "static_pages"라는 또 다른 contollers보기에서 "최근 작업"부분을 표시하려고합니다.rails - 다른 컨트롤러보기에 부분 표시
<%= render partial: "jobs/recent_jobs" %>
을하지만, 여기에 내가 오류입니다 :
나는 내가해야 할 것 모두가 내 static_pages/home.html.erb에서 아래를 호출이라고 생각했다. 분명히 @ jobs는 0입니다.ActionView::Template::Error (undefined method `each' for nil:NilClass):
2: <div class="homepage_recent_jobs">
3: <div class="container">
4:
5: <% @jobs.each do |job| %>
6: <% job.title %>
7: <% end %>
8:
여기에 작업 컨트롤러 내 부분의
<div class="homepage_recent_jobs">
<div class="container">
<% @jobs.each do |job| %>
<% job.title %>
<% end %>
</div>
</div>
작업 인덱스 작업을
def index
set_link_order_and_counters
@jobs = Job.all
# calls scopes
if params[:experience].present?
@jobs = @jobs.by_experience(params[:experience])
end
if params[:num_days_past].present?
@jobs = @jobs.by_num_days_past(params[:num_days_past].to_i)
end
@jobs = @jobs.paginate(page: params[:page], per_page: 5)
end
테스트를 시작할 때 부분 변수와 함께 지역 변수를 전달하거나 처음 언급 한 것처럼 각 블록을 수정할 필요가 없다는 것을 깨달았습니다. 필요한 것은 @jobs = Job.all을 static_pages 홈 컨트롤러에 추가하는 것뿐이었습니다. 당신은 코멘트에서 이것을 더 언급했다 그래서 나는 그 대답을 투표했다. 귀하가 귀하의 의견을 명확하게 표시 할 수있는 별도의 답변을하고 싶다면 그 대답을 기꺼이 받아들이는 것 이상입니다. 나는 누군가가 혼란스러워하는 동일한 문제를 겪고있는 미래를 원하지 않았다. 도와 줘서 고마워. – Scott
네 말이 맞아. 답변을 업데이트했습니다. –