我正在尝试确保每个作业在用户点击时都有正确的链接。
我遇到的问题是我不断收到错误Couldn't find job without an ID
。
在我看来,我有以下代码:
<% @jobs.group_by{|x| x.created_at.strftime("%d %b. %Y")}.each do |date,jobs_on_that_date| %>
<section class="date"><%= date %></section>
<section id="top-job">
<% jobs_on_that_date.each do |job| %>
<section id="job-wrapper">
<%= link_to url_with_protocol(@link.job_url), :target => '_blank' do %>
<section id="job">
<%= job.title %> - <%= job.company %>
<%= job.salary %>
<%= job.location %>
<%= job.job_type %>
</section>
</section>
<% end %>
<% end %>
</section>
<% end %>
在我的控制器中,我创建了一个名为@link
的对象,如下所示:
def index
@user = current_user
@jobs = Job.where('created_at > ?', 30.days.ago).reverse
@link = Job.find(params[:id])
end
最后,我有以下路由设置。
JobappV2::Application.routes.draw do
devise_for :users
resources :jobs
resources :users do
resources :jobs
end
root :to => 'jobs#index'
end
如果我使用@link = Job.find(2)
这可行,但每个作业都会以ID为2的作业输入链接。
提前感谢您的帮助!
答案 0 :(得分:1)
什么是params[:id]
?
我怀疑如果你在控制器中raise params[:id].inspect
,你会发现它是nil
。此外,创建@link
有什么意义?只需将job.job_url
放在您的视图中,而不是@link.job_url