【发布时间】:2011-03-06 23:58:17
【问题描述】:
我有一个模型“作业”,我正在向其中添加一个新动作“预览”。为了支持这个新动作,我修改了 routes.rb 如下:
resources :jobs do
member do
get 'preview'
end
end
然后在我的工作创建操作中,我得到以下内容:
if @job.save
redirect_to preview_job_url
但是,当我保存表单时,我没有重定向到预览 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 的新手,所以我确定我遗漏了一些明显的东西。非常感谢。
【问题讨论】:
-
您是否确认您确实收到了 GET 请求?如果您在浏览器中访问 /jobs/preview/1 会发生什么?
标签: ruby-on-rails routes custom-routes