0

哪個項目我有幾個型號:Rails的 - 不能告訴創建控制器創建

  • 用戶
  • 關係
  • 項目
  • 附表

  • 一個user實例可以類型爲:student:employer

  • schedulebelongs_to一個project
  • 一個projecthas_oneschedule
  • projectbelongs_to一個studentstudenthas_manyprojects

  • 一個關係belongs_to學生和關係也belongs_to僱主。僱主和學生都有很多關係。

我寫控制器創建一個時間表,我想不出如何知道哪些項目調度所屬的控制器。這裏是我迄今爲止

def create 
    if current_user.type == 'Employer' 
     redirect_to employer_profile_path(current_user.profile_name) 
    else 
     @schedule = Schedule.find(params[:id]) 
     if @schedule.save(schedule_params)  
      flash[:notice] = "Successfully created schedule." 
      redirect_to profile_path(current_user.profile_name) #change to project path later 
     else 
      render :action => 'new', :notice => 'Invalid Schedule' 
     end 
    end 
end 

private 
def schedule_params 
     params.require(:schedule).permit(tasks_attributes: [:title, :content, :_destroy]) 
end 

我敢肯定,我錯誤地定義@Schedule。對於計劃的路線是:

​​

我怎麼知道哪些項目調度所屬的控制器?

回答

0

假設您發佈的SchedulesController創建操作就沒有必要了:

@schedule = Schedule.find(params[:id]) 

這將可能返回nil,因爲沒有時間表(畢竟這是你想要什麼create這裏)。

@schedule = Schedule.new(schedule_params) 

,如果你想一個項目分配給時間表,您需要提交這些信息,以便您可以在params哈希訪問它。類似於:

@schedule.project = Project.find(params[:project_id]) 
+0

謝謝,剛試過。這就是說它找不到沒有ID的項目。 – Philip7899

+0

啊,謝謝 – Philip7899