【问题标题】:undefined method for 'parent_children_path''parent_children_path' 的未定义方法
【发布时间】:2014-08-23 14:14:51
【问题描述】:

我对 Rails 很陌生,我仍在关注tutorial,了解如何在父记录的显示视图中显示和创建关联记录。我正在尝试添加一个创建子记录的表单。

building/show.html.erb 包含以下形式:

<%= form_for([@building, @building.rooms.build]) do |f| %>
  <%= f.label :name %><br>
  <%= f.text_field :name %><br>
  <%= f.submit %>
<% end %>

已经使用 has_many 和 belongs_to 为关联设置了模型类。

BuildingsController 有

def show
    @building = Building.find(params[:id])
    @room = Room.new
    @room.building_id = @building.id
end

RoomsController 有

def new
  @room = building.rooms.new
end

def create
  @building = Building.find(params[:building_id])
  @room = @Building.rooms.create(room_params)
  redirect_to building_path(@building)
end

我不确定我错过了什么,但是当我在浏览器中加载建筑记录 /building/1 时,我得到了 undefined method building_rooms_path。我认为这可能与我对 form_for 的惯用用法有关。我只是从教程中复制它。

【问题讨论】:

    标签: forms form-for


    【解决方案1】:

    一些可能的答案可以在这里找到:form_for [@parent, @child] causes undefined method `parent_child_path' in Child#new

    但就我而言,我在检查 routes.rb 时找到了解决方案

    resources :buildings
    resources :rooms
    

    应该是的

    resources :buildings do
       resources :rooms
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 2013-06-11
      • 2010-12-30
      • 2019-12-25
      • 2021-07-25
      • 2019-06-20
      • 2018-11-27
      相关资源
      最近更新 更多