Требуются недостающие ключи [: id] для дочерней ассоциации show path
У меня есть модель работы, которая принадлежит пользователю.На странице показа пользователя я вызываю все дочерние задания, которые принадлежат пользователю.Вот мой код:
<% current_user.jobs.each do |j| %>
<%= j.id %>
<%= j.job_category %>
<%= link_to 'show', job_path(j.id) %> <br> <br>
<% end %>
Но возникает ошибка всякий раз, когда я нажимаю на страницу показа заданий:
Не найдено ни одного маршрута {: action => "show",: controller=> "jobs",: id => nil,: user_id => "1"} отсутствуют необходимые ключи: [: id]
Пожалуйста, как мне исправить эту ошибку?маршруты показывают, что ресурсы рабочих мест стоят самостоятельно с путем: job_path.это работает, когда я вручную подключаю URL.
Вот мои маршруты.rb:
resources :users do
resources :jobs
resources :applications
end
resources :jobs do
collection do
match 'search' => 'jobs#search', via: [:get, :post], as: :search
end
end
и мой код контроллера:
class JobsController < ApplicationController
def index
@q = Job.ransack(params[:q])
@jobs = @q.result(distinct: true)
end
def frontpage
@q = Job.ransack(params[:q])
if params[:q].present?
redirect_to jobs_path(@q)
end
@jobs = Job.all
end
def search
index
render :index
end
def show
@job = Job.find(params[:id])
end
def edit
end
def update
@joblists.update(joblists_params)
redirect_to joblists_path
end
def create
@user = User.find(params[:user_id])
@user_job = @user.jobs.create(joblists_params)
flash[:notice] = "Job has been successfully Created"
redirect_to user_path(@user)
end
def joblists_params
params.require(:job).permit(:job_category, :job_title, :company_name, :location, :job_description,
:monthly_salary, :deadline, :contact, :longitude, :lattitude, :full_time )
end
end