2014-09-16 5 views
0

내가 내 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는 올바른 데이터를 가지고 있지만 여전히 경로에 오류가 표시됩니다. 당신이 resources 필요한 경우 resources :user_calendar

당신이 resources :user_calendars 작성해야 - (s)

으로도 당신이 볼 수 있었다 : user_calendars 컨트롤러 레이크 노선의 여기 그 결과로 있기 때문에 할 수

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 

답변