Rails未定义路径方法的形式

时间:2013-10-01 12:40:17

标签: ruby-on-rails ruby forms html-table

我正在尝试让页面生成一个课程表,其中每个单元格都是一个文本字段,您可以在其中编辑值并通过按下按钮进行保存。该按钮应该运行更新操作,更新属性。

<% @group.lessons.each do |lesson| %>

        <% form_for lesson do |f| %>
            <tr>
                <td><%= f.text_field :time %></td>
                <td><%= f.text_field :day %></td>
                <td><%= f.text_field :subject %></td>
                <td><%= f.text_field :teacher %></td>
                <td><%= f.text_field :room %></td>
                <td><%= f.submit 'Update'%></td>
                <td><%= link_to 'Delete', [lesson.group, lesson], method: :delete%></td>
            </tr>
        <%end%>
    <%end%>

小组has_many:课程,课程belongs_to:group(只是为了说清楚)。

我在第14行得到了这个错误:

  

#&lt;#:0x30831d8&gt;

的未定义方法`lesson_path'

第14行:

<% form_for lesson do |f| %>

根据要求从routes.rb中提取:

resources :groups do
    resources :lessons
end
root :to => 'groups#index'

我如何实现我的需要?

1 个答案:

答案 0 :(得分:2)

你应该:

<%= form_for [@group, lesson] do |f| %>
在你看来

。这是必要的,因为lessonsgroups资源中的嵌套资源,因此如果您希望将group_id路由到LessonsController,则需要将{{1}}传递给该链接。