我在这里的第一个问题。我很困惑,我试图建立一个空缺的链接。但是我可以得到的一些理由是Vacancy.project的nil ...我在create方法中尝试了params [:project_id] .to_i并且得到了0,但是这个案例的项目ID是156,并且在查看params.inspect就是这样。
我在我的新控制器中也没有尝试任何操作,并尝试读取会话信息。位置代码只是空位也建立了一个位置,但这不应该影响很多,是吗?
有什么想法吗?
空缺控制器
def new
@vacancy = Vacancy.new
@vacancy.position = Position.new
@vacancy.project_id = params[:project_id]
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @vacancy }
end
end
使用
的路线 resources :projects do
resources :vacancies
end
链接即时使用:
<%= link_to "Add Vacancy", new_project_vacancy_path(@project) %>
模型 项目... has_many:职位空缺
&安培; 空缺..... belongs_to:project
答案 0 :(得分:0)
对于超干实现,你可以这样做:
class VacanciesController < ApplicationController
before_filter :load_project, :load_vacancy
def new
end
def edit
end
def create
if @vacancy.update_attributes( params[:vacancy] )
flash[:notice] = 'Vacancy successfully created/updated'
redirect_to project_vacancies_path( @project )
else
render :new
end
end
alias :update :create
protected
def load_vacancy
@vacancy = if params[:id].blank?
@project.vacancies.build
else
@project.vacancies.find(params[:id])
end
end
def load_project
@project = Project.find( params[:project_id] )
end
end