Rails路由问题 - “没有路由匹配…”

我有一个模型“Job”,我正在添加一个新的动作“预览”。为了支持这个新动作,我修改了routes.rb,如下所示:
resources :jobs do
   member do
      get 'preview'
   end
end
然后在我的Job创建动作上我得到了以下内容:
 if @job.save
    redirect_to preview_job_url
但是,当我保存表单时,我得到以下路由错误,而不是重定向到预览网址:
Routing Error
No route matches {:action=>"preview", :controller=>"jobs"}
无法弄清楚为什么会发生这种情况,因为URL工作正常(http:// localhost:3000 / jobs / id / preview),如果我运行rake路由,那么正确的路由似乎就在那里:
preview_jobs GET    /jobs/preview(.:format)            {:action=>"preview", :controller=>"jobs"}
关于可能发生什么的任何想法?似乎所有的部分都已到位,但我是Rails的新手,所以我确定我错过了一些明显的东西。非常感谢。     
已邀请:
您将“预览”定义为成员操作。成员操作是指模型的实例。当您调用preview_job_url时,您需要传递特定的Job对象或Job的ID,以便可以创建URL。这应该是有道理的...如果你没有告诉框架你要为哪个Job构建一个URL,Rails如何构建一个引用特定模型的URL? 在你的控制器中尝试这个:
if @job.save
  redirect_to preview_job_url(@job)
    

要回复问题请先登录注册