我正在努力将一个 ID 成功传递到我设置的嵌套资源的 URL 中,称为 Jobs。
当我尝试将对象传递到我的链接时,我得到的错误@job
如下:
No route matches {:action=>"edit", :controller=>"jobs", :user_id=>1, :id=>nil}
这清楚地表明它无法正确找到 id,所以正在寻找nil
目前我的路线设置如下:
resources :users do
resources :jobs
end
我的链接是<%= link_to "Edit", edit_user_job_path(@user.id,@job) %>
有趣的是,如果我@jobs
在最后传递带有“s”的对象,它将正确加载页面,但是当我单击链接时,将尝试添加所有该用户的作业 ID。
在我的编辑控制器中,我有:
def edit
@user = current_user
@job = @user.jobs.find(params[:id])
end
任何帮助真的将不胜感激:)
更新
好的,我在控制器的错误页面上定义了对象(在编辑而不是索引下)。我现在遇到的问题是Couldn't find Job without an ID
我将控制器索引定义更新为:
def index
@user = current_user
@jobs = @user.jobs.all
@job = @user.jobs.find(params[:id])
end
在我看来 (jobs#index)
<% @jobs.each do |f| %>
...
<%= link_to "Edit", edit_user_job_path(@user.id,job) %>
...
<% end %>
如果您知道我哪里出错了,任何建议将不胜感激:)