0

これを約12時間機能させようとした後、私は救いのためにSOに頼らなければなりません. これがシナリオです。

私は zurb Foundation 4 を使用しており、ダッシュボードでネストされたリソースのモーダル ajax フォームを表示しようとしています。

次のネストされたリソースがあります。

  resources :lessons, only: [:index, :edit, :show] do
    resources :notes, only: [:new, :create, :edit, :delete]
  end

レッスン/1/メモ/新しい作品でフォームを作成してください。

次のように static_pages/home にテーブルがあります。

  <table>
    <thead>
    <tr>
      <th>Student</th>
      <th>Subject</th>
    </tr>
    </thead>
<% @lessons.each do |lesson| %>
    <tr>
      <td><%= link_to lesson.student.name, lesson %></td>
      <td><%= lesson.subject.name %></td>
      <td><%= link_to 'make a note', new_lesson_note_path(lesson), "data-reveal-id"=>"note-for" %></td>
    </tr>
<% end %>

すべてのマークアップの下で、Foundation Reveal モーダルに次のフォームがあります。

<!--Reveal Form-->
<div id="note-for" class="reveal-modal">
<% @lessons.each do |lesson| %> <--form now associated with proper object-->
  <%= form_for Note.new, :url => new_lesson_note_path(lesson) do |f| %>
      <div class="field">
        <%= f.label :content %>
        <%= f.text_area :content %>
      </div>
      <div class="actions">
        <%= f.submit "Save", class: "small button"%>
      </div>
  <% end %>
  <a class="close-reveal-modal">&#215;</a>
  <% end %>
</div>

モーダルは正常にレンダリングされますが、フォームを送信すると次のエラーがスローされます。

No route matches [POST] "/lessons/1/notes/new"

私はここで真剣に途方に暮れています、助けてください。

4

2 に答える 2

1

最後に!

13時間いじくり回した後、解決策!

モーダル div の表示内にループを追加します。

<div id="note-for" class="reveal-modal">
   <% @lessons.each do |lesson| %>
    .......
   <% end %>
</div>

notes_controller.rb アクションが適切にフォーマットされていることを確認します

  def create
    @lesson = Lesson.find(params[:lesson_id])
    @note = @lesson.notes.build(params[:note])
    if @note.save
    respond_to do |format|
      format.html { redirect_to root_path, notice: 'Lesson noted!' }
      format.js
    end
    else
      redirect_to root_path
    end
  end

そして今、私はパブに出かけています!おかげでオレ

于 2013-07-20T09:35:12.877 に答える