管理员命名空间表单中的嵌套资源

时间:2013-09-18 01:17:31

标签: ruby-on-rails form-for

我不完全了解嵌套资源表单的工作原理。

我有一个表单在我的管理命名空间“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

我哪里出错了?

1 个答案:

答案 0 :(得分:1)

您必须在form_for call中指定活动。

<%= form_for [:helm, @activity, @event] do |f| %>
  # etc
<% end %>