两次嵌套的表单路径问题



我的user_calendar模型有以下表单:

<%= form_for([company,user,calendar], :remote => true) do |f| %>
    ....
<% end %>

路线如下:

scope '(:locale)' do
  resources :companies do
    resources :users do
      resources :user_calendar
    end
  end
end

当用户点击用户主页上的编辑时:

<%= link_to 'E', edit_company_user_path(user.company, user), :remote => true %>

该方法是从users_controller:调用的

def edit
  @calendar = @user.user_calendars.build
  respond_to do |format|
    format.js
  end
end

edit.js应该加载以下表单的模型数据:

$('#calendar-form').html("<%= escape_javascript(render :partial => 'user_calendars/form', :locals => { :company => @company, :user => @user, :calendar => @calendar }) %>");

但是,我没有呈现表单,而是得到了以下错误:

ActionView::Template::Error (undefined method `company_user_user_calendars_path' for #<#<Class:0x007fc351d12808>:0x00000001cf6128>):

三个@company、@user和@calendar都有正确的数据,但路径仍然显示错误。这里是user_calendars控制器上rake路由的结果:

Controller#Action
company_user_user_calendar_index GET    (/:locale)/companies/:company_id/users/:user_id/user_calendar(.:format)          user_calendar#index
                             POST   (/:locale)/companies/:company_id/users/:user_id/user_calendar(.:format)          user_calendar#create
  new_company_user_user_calendar GET    (/:locale)/companies/:company_id/users/:user_id/user_calendar/new(.:format)      user_calendar#new
 edit_company_user_user_calendar GET    (/:locale)/companies/:company_id/users/:user_id/user_calendar/:id/edit(.:format) user_calendar#edit
  company_user_user_calendar GET    (/:locale)/companies/:company_id/users/:user_id/user_calendar/:id(.:format)      user_calendar#show
                             PATCH  (/:locale)/companies/:company_id/users/:user_id/user_calendar/:id(.:format)      user_calendar#update
                             PUT    (/:locale)/companies/:company_id/users/:user_id/user_calendar/:id(.:format)      user_calendar#update
                             DELETE (/:locale)/companies/:company_id/users/:user_id/user_calendar/:id(.:format)      user_calendar#destroy

这可能是因为:resources :user_calendar

如果你需要resources,你应该用(s)写resources :user_calendars-

您还可以查看有关资源/资源的guid

最新更新