Ruby on rails 其他控制器中的Rails嵌套表单对象

Ruby on rails 其他控制器中的Rails嵌套表单对象,ruby-on-rails,forms,routing,zurb-foundation,nested-resources,Ruby On Rails,Forms,Routing,Zurb Foundation,Nested Resources,在尝试了12个小时之后,我不得不求助于SO来寻求救赎。下面是一个场景 我使用ZURB基金会4,我试图在我的仪表板上为嵌套的资源做一个公开的模态Ajax表单。 我有以下嵌套资源: resources :lessons, only: [:index, :edit, :show] do resources :notes, only: [:new, :create, :edit, :delete] end 课程表/1/笔记/新作品罚款 我的静态页面/主页上有一张表,如下所示: &l

在尝试了12个小时之后,我不得不求助于SO来寻求救赎。下面是一个场景

我使用ZURB基金会4,我试图在我的仪表板上为嵌套的资源做一个公开的模态Ajax表单。 我有以下嵌套资源:

  resources :lessons, only: [:index, :edit, :show] do
    resources :notes, only: [:new, :create, :edit, :delete]
  end
课程表/1/笔记/新作品罚款

我的静态页面/主页上有一张表,如下所示:

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

我在这里真是不知所措,请帮忙。

我想你在
@lessons
变量上犯了一个错误。您正在将模型关系传递给url帮助器,而不是模型

要解决此问题,请尝试:

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

#view
...
<%= form_for Note.new, :url => new_lesson_note_path(@lesson) do |f| %>
...
#控制器
@lesson=lesson.find(参数[:lesson\u id])
#看法
...
新课程笔记路径(@lesson)do | f |%>
...

我假设您在使用
@lessons
变量时犯了错误。您正在将模型关系传递给url帮助器,而不是模型

要解决此问题,请尝试:

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

#view
...
<%= form_for Note.new, :url => new_lesson_note_path(@lesson) do |f| %>
...
#控制器
@lesson=lesson.find(参数[:lesson\u id])
#看法
...
新课程笔记路径(@lesson)do | f |%>
...
终于

经过13个小时的修补,解决方案

在显示模式div中添加一个循环

<div id="note-for" class="reveal-modal">
   <% @lessons.each do |lesson| %>
    .......
   <% end %>
</div>
现在我要去酒吧了!最后谢谢你

经过13个小时的修补,解决方案

在显示模式div中添加一个循环

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

现在我要去酒吧了!谢谢ole

我已经试过了,但没用。不过,好消息是,我已经设法通过网络建立了适当的联系。请查看编辑后的代码。现在唯一的问题是它抛出了一个路由错误。我认为(@lessons)是将表单与课程集合相关联,而不仅仅是一个。这有点神奇。很多时候我会花几个小时在一个问题上。放弃。就这样乞求帮助。当我输入完我的问题后,我的脑海中就会闪现出一个解决方案。实际上我已经试过了,但没用。不过,好消息是,我已经设法通过网络建立了适当的联系。请查看编辑后的代码。现在唯一的问题是它抛出了一个路由错误。我认为(@lessons)是将表单与课程集合相关联,而不仅仅是一个。这有点神奇。很多时候我会花几个小时在一个问题上。放弃。就这样乞求帮助。我一打完我的问题,答案就突然出现在我的脑海里。
  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