0

マイページの左側に、ユーザーが作成したドキュメントのリストがあります。ドキュメントを作成/編集するためのフォーム。ページがどのように設計されているかの表現に従います。

| list of documents| Edit/Create documents|
|                  |                      |
|                  |                      |

私は次のことをしようとしています

1) ページが最初にロードされたときに新しいドキュメントを作成するためのフォームを表示します。ボタンをクリックすると、更新されたリストと新しく作成されたドキュメントでページがリロードされます。

2) ユーザーが既存のドキュメントの 1 つをクリックすると、フォームを更新してドキュメントの詳細を表示したいと考えています。

私はパーシャルがこれを行う方法になると考えていました。

(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' %>

Index.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 %>

UPDATE **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

ありがとう

4

1 に答える 1