我遇到了一个非常奇怪的错误,其中包含以下内容:
Template is missing
Missing template /404 with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "c:/Sites/jobapp/app/views" * "C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/devise-2.1.2/app/views"
这很奇怪,因为我的所有其他路线似乎都正常工作,除了以下内容:
<%= Link_to "Add Job", new_user_job_path %>
我的路线设置如下:
JobappV2::Application.routes.draw do
devise_for :users
resources :newsletters
get "pages/advertise"
get "pages/contact"
get "pages/about"
get "pages/terms"
resources :jobs do
collection { post :search , to: 'jobs#index' }
end
resources :users do
resources :jobs
end
root :to => 'jobs#index'
end
因此应该可以使用localhost:3000/users/1/jobs/new
在乔布斯控制器中我有:
def new
@user = current_user
@job = @user.jobs.build
end
def create
@user = current_user
@job = @user.jobs.create(params[:job])
if @job.save
redirect_to jobs_path
else
render new_user_job_path(current_user.id)
end
end
并在我的Jobs新视图中我使用以下表单方法:
<%= form_for [@user, @user.jobs.build] do |f| %>
如果有人知道这里可能出现什么问题,我会非常感激,因为我一直在努力:(
谢谢!
答案 0 :(得分:1)
“渲染new_user_job_path(current_user.id)”是罪魁祸首
做类似
的事情render "edit"