我在寫一個簡單的Web應用程序,我喜歡稱之爲PMS(項目管理系統)。它這個程序我有2個模型項目和學生。我已經設定(我猜...因爲我是一個新手)這兩個模型之間的關聯。項目有許多學生,但學生屬於一個項目(也許它會隨着時間而改變)。無法創建form_for關聯模型
但我的問題是讓所有東西一起工作。我不知道如何在新項目表格中插入新學生。我已經嘗試了一切,但仍然沒有!
這裏是我的源文件:
項目控制器:
class ProjectsController < ApplicationController
def show
@projects = Project.all
end
def create
@project = Project.new(project_params)
@project.status = "Waiting"
@project.save
redirect_to root_path
end
private
def project_params
params.require(:project).permit(:title, :lecturer)
end
end
學生控制器:
class StudentsController < ApplicationController
def create
@project = Project.find(params[:project_id])
@student = @project.students.create(params[:student])
@student.save
end
end
型號:
class Project < ActiveRecord::Base
has_many :students
end
class Student < ActiveRecord::Base
belongs_to :project
end
查看:
添加新項目
<%= form_for :project, url: projects_path do |f| %>
<p>
<%= f.label :title %>
<%= f.text_field :title %>
</p>
<p>
<%= f.label :lecturer %>
<%= f.text_field :lecturer %>
</p>
<%= form_for([@project, @project.students.build]) do |s| %>
<p>
<%= s.label :name %><br />
<%= s.text_field :name %>
</p>
<% end %>
<p>
<%= f.submit %>
</p>
<% end %>
路線:
RoRPMS::Application.routes.draw do
# You can have the root of your site routed with "root"
root 'projects#show'
resources :projects do
resources :students
end
end
當使用'save',你必須檢查布爾結果。您可以嘗試使用'save!'而不是'save',如果無法保存對象,則會引發異常,指出錯誤。 – Baldrick
奧奇,我明白了,但它仍然不是我正在應對的問題... – cojoj