0

現在嘗試使這項工作大約12小時後,我不得不求助於救贖。這是場景。其他控制器中的Rails嵌套窗體對象

我正在使用zurb基礎4,並且試圖爲我的儀表板中的嵌套資源創建一個顯示模式ajax窗體。

我有以下嵌套的資源:在吸取/ 1 /筆記/新作精細

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

形式。

我有我的static_pages表/家像這樣:

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

在所有我的標記,我已經在基礎下面的表格顯示模式:

<!--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" 

我在這裏很茫然,請幫助。

回答

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 

,現在我要去酒吧!感謝ole

2

我假設你與@lessons變數產生誤會。你正在傳遞,模型關係到網址幫手,而不是模型。

爲了解決這個問題嘗試:

#controller 
@lesson = Lesson.find(params[:lesson_id]) 

#view 
... 
<%= form_for Note.new, :url => new_lesson_note_path(@lesson) do |f| %> 
... 
+0

我實際上已經嘗試過這一點,沒有工作。不過好消息是我已經通過<%@ lessons.each do | lesson |來建立正確的關聯%>。請參閱編輯的代碼。現在唯一的問題是它會引發路由錯誤。我認爲(@lessons)正在將這種形式與一整套課程聯繫起來,而不僅僅是一個。 –

+0

這裏有一些神奇的東西。我會在一個問題上花費數小時。放棄。請在SO上尋求幫助。只要我輸入問題,解決方案就會出現在我的腦海中。 –