0

我没有完全理解嵌套资源表单是如何工作的。

我有一个表单可以在我的管理命名空间“helm”中创建新事件

事件属于一个活动。

我的路线看起来像这样

 namespace :helm do
    resources :providers,  :locations
    resources :events, only: [:show, :edit, :update, :destroy]
    resources :activities do
      resources :events, only: [:new, :create]
    end
  end

我的事件#new 操作看起来像这样

def new      
  @activity = Activity.find(params[:activity_id])
  @event = @activity.events.build
  ...

我的 form_for 助手看起来像这样:

<%= form_for [:helm,  @event] do |f| %>

我收到错误

undefined method `helm_events_path'

大概是因为我没有设法告诉 rails 我希望表单用于嵌套路由:

new_helm_activity_event_path

我哪里出错了?

4

1 回答 1

1

您必须在 form_for 调用中指定活动。

<%= form_for [:helm, @activity, @event] do |f| %>
  # etc
<% end %>
于 2013-09-18T05:48:30.380 回答