找不到没有ID Rails的<object> </object>

时间:2012-08-03 09:44:00

标签: ruby-on-rails ruby-on-rails-3

我正在尝试确保每个作业在用户点击时都有正确的链接。

我遇到的问题是我不断收到错误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的作业输入链接。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

什么是params[:id]

我怀疑如果你在控制器中raise params[:id].inspect,你会发现它是nil。此外,创建@link有什么意义?只需将job.job_url放在您的视图中,而不是@link.job_url