Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何获取当前用户的所有作业并查看每个作业_Ruby On Rails_Associations - Fatal编程技术网

Ruby on rails 如何获取当前用户的所有作业并查看每个作业

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 %> 我的控制器代码

缺少子关联显示路径所需的键[:id]

我有一个属于用户的工作模型。在用户显示页面中,我调用属于该用户的所有子作业。这是我的密码:

<% 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 %>