在我的页面左侧有一个用户已经创建的文档列表。以及用于创建/编辑文档的表单。遵循页面设计方式的表示。
| list of documents| Edit/Create documents|
| | |
| | |
我正在尝试执行以下操作
1)在页面首次加载时显示用于创建新文档的表单。然后在按钮上单击重新加载包含更新列表和新创建文档的页面。
2)当用户单击现有文档之一时,我想更新表单以显示文档的详细信息。
我在想partials将是做到这一点的方法。
我已经完成了(1)的一部分。现在我正在尝试加载现有文档的详细信息。
当我尝试显示现有文档的详细信息时会显示此错误。
documents/_form.html.erb where line #1 raised:
undefined local variable or method `document' for #<#<Class:0x007ffe96ff30b0>:0x007ffe96f0e118>
Extracted source (around line #1):
1: <%= form_for document do |f| %>
2: <table>
3: <tr>
4: <div class="field">
Trace of template inclusion: app/views/documents/edit.html.erb
EDIT.html.erb
<h1>Editing document</h1>
<%= render 'form' %>
索引.html.erb
<div id="docList">
<%= search_field(:user, :document) %>
<% @documents.each do |document| %>
<li><%= link_to document.name, edit_document_path(document.id) %></li>
<% end %>
<br />
<%= link_to 'New Document', new_document_path %>
</div>
<div id="docEdit">
<%= render :partial => "form", :locals => { :document => Document.new } %>
</div>
_form.html.erb
<%= form_for document do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :notes %><br />
<%= f.text_area :notes %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
更新 **documents_controller.rb**
#GET /documents/new
# GET /documents/new.json
def new
@document = Document.new
@document.user = current_user
respond_to do |format|
format.html # new.html.erb
format.json { render json: @document }
end
end
# GET /documents/1/edit
def edit
@document = Document.find(params[:id])
end
谢谢