Ruby on rails 如何获取当前用户的所有作业并查看每个作业
缺少子关联显示路径所需的键[:id] 我有一个属于用户的工作模型。在用户显示页面中,我调用属于该用户的所有子作业。这是我的密码:Ruby on rails 如何获取当前用户的所有作业并查看每个作业,ruby-on-rails,associations,Ruby On Rails,Associations,缺少子关联显示路径所需的键[:id] 我有一个属于用户的工作模型。在用户显示页面中,我调用属于该用户的所有子作业。这是我的密码: <% current_user.jobs.each do |j| %> <%= j.id %> <%= j.job_category %> <%= link_to 'show', job_path(j.id) %> <br> <br> <% end %> 我的控制器代码
<% current_user.jobs.each do |j| %>
<%= j.id %>
<%= j.job_category %>
<%= link_to 'show', job_path(j.id) %> <br> <br>
<% 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
类作业控制器
添加用户id
user_job_path(current_user.id, j.id)
感谢您的评论注意运行
rails routes
它是这样显示的
user_job GET /users/:user_id/jobs/:id(.:format) jobs#show
所以链接路径是
user_job_path
在这个链接上,您需要传递用户id
和作业id
,然后它就会这样
<%= link_to 'show', user_job_path(@user, j.id) %> # or @user.id
#或@user.id
聊天后解决
<% current_user.jobs.each do |j| %>
<%= j.id %>
<%= j.job_category %>
<%= link_to 'show', user_job_path(current_user.id, j.id) %> <br><br>
<% end %>
您的问题是什么?请清楚地添加问题…每当我单击“显示”链接时,它会抛出我在上面显示的错误。这将不起作用user\u job\u path应该,但是首先你需要理解这个问题。这仍然会引发这个错误:没有路由匹配{:action=>“show”,:controller=>“jobs”,:id=>nil,:user\u id=>“1”}缺少所需的键:[:id]你使用了@user.id
到像这样的链接user\u job\u path(@user.id,j.id)
耶。。抛出此错误没有路由匹配{:action=>“show”,:controller=>“jobs”,:id=>nil,:user\u id=>“1”}缺少必需的键:[:id],那么视图中的@user
对象是什么?请澄清这一点,让我们看看。
<% current_user.jobs.each do |j| %>
<%= j.id %>
<%= j.job_category %>
<%= link_to 'show', user_job_path(current_user.id, j.id) %> <br><br>
<% end %>