我有創建嵌套窗體的問題。Rails中嵌套窗體的問題(輸入字段不顯示;創建返回未定義的方法錯誤)
一個問題是子元素(項目描述)的文本輸入字段未顯示。
第二個問題是,一旦我創建一個新的項目,索引操作返回'未定義的方法爲零對象'。我認爲這是因爲完全沒有ProjectDecription(如果project_description不存在,它不能返回project.project_description.description)。
此外,ProjectDescription已成功保存在數據庫(無項目描述)請幫助。
這是我的模型的問題:
一)項目模型
1 class Project < ActiveRecord::Base
2 has_one :project_description
3 accepts_nested_attributes_for :project_description
4 end
二)ProjectDescription模型
1 class ProjectDescription < ActiveRecord::Base
2 belongs_to :project
3 end
這是我projects_controller.rb
1 class ProjectsController < ApplicationController
2
3 def index
4 @projects = Project.all
5 end
6
7 def new
8 @project = Project.new
9 @project.project_description = ProjectDescription.new
10 end
11
12 def create
13 @project = Project.new(params[:project])
14
15 if @project.save
16 redirect_to (projects_path)
17 else
18 new_project_path
19 end
20 end
21
22 def show
23 @project = Project.find(params[:id])
24 end
25
26 end
這是我的項目/ index.html.erb視圖(我想線5使未定義的方法錯誤)
1 <%= link_to 'Create new project', new_project_path %>
2 <h1>Projects</h1>
3 <% @projects.each do |p| %>
4 <h2><%= link_to p.project_name, project_path(p) %></h2>
5 <%= p.project_description.description %>
6 <br/>
7 <% p.users.each do |u| %>
8 <%= u.user_name %>
9 <br/>
10 <% end %>
11 <br/>
12 <% end %>
這是我的項目/ new.html.erb視圖(文本字段中第9行指定沒有按」噸顯示)
1 <h2>Create new Project</h2>
2 <%= form_for @project do |f| %>
3 Project name:
4 <%= f.text_field :project_name %><br/>
5
6 Project descripiton:
7 <% @project.build_project_description unless @project.project_description %>
8 <% f.fields_for :project_description do |builder| %>
9 <%= builder.text_field :description %>
10 <% end %>
11 <br/>
12 <%= submit_tag ("Create Project") %>
13 <% end %>
你先生是一個紳士和學者。第一個問題解決。第二個問題仍然存在。仍然沒有顯示文本字段。有其他想法嗎? – oFca 2012-03-14 15:54:13
謝謝:)對不起,對於延遲,我沒有看到評論>。<無論如何,我想我發現錯誤:在fields_for:<%= f開始處有一個缺少'='的地方。 fields_for:project_description do | builder | %>' – mdesantis 2012-03-19 17:10:37