2012-05-02 3 views
0

그래서 저는 왜 이것이 작동하지 않는지 알아 내려고 벽에 머리를 세게 치고있었습니다.이 레일 형태가 올바른 경로를 찾지 못하는 이유는 무엇입니까?

# ./app/views/admin/informations/_form.html.erb:1:in `_app_views_admin_informations__form_html_erb__2815737811953353352_70245242566200' 
# ./app/views/admin/informations/new.html.erb:2:in `_app_views_admin_informations_new_html_erb___3700624853666844924_70245242606040' 

모든 팁을 올바른 방향으로 : 나는 추적으로

ActionView::Template::Error: 
    undefined method `admin_information_index_path' for #<#<Class:0x007fc67971cab8>:0x007fc67d775740> 

가 계속?


내 경로 :

namespace :admin do 
    resources :informations 
end 

내 컨트롤러 :

class Admin::InformationsController < Admin::AdminController 
    def new 
    @information = Information.new 
    end 
end 

보기/관리/정보/new.html.erb :

<h1>Add New Information Page</h1> 
<%= render :partial => 'form', locals: { information: @information } %> 

보기/관리/정보/_form.html.erb :

<%= form_for [:admin, information] do |f| %> 
    <%= error_messages_for information %> 

    <%= f.label :title %><br> 
    <%= f.text_field :title %><br><br> 

    <%= f.label :content %><br> 
    <%= f.text_area :content %><br><br> 

    <%= f.submit "Submit" %> 
<% end %> 

출력 rake routes

admin_informations GET /admin/informations(.:format)   admin/informations#index 
         POST /admin/informations(.:format)   admin/informations#create 
new_admin_information GET /admin/informations/new(.:format)  admin/informations#new 
edit_admin_information GET /admin/informations/:id/edit(.:format) admin/informations#edit 
    admin_information GET /admin/informations/:id(.:format)  admin/informations#show 
         PUT /admin/informations/:id(.:format)  admin/informations#update 
         DELETE /admin/informations/:id(.:format)  admin/informations#destroy 
      admin_root  /admin(.:format)      admin/sessions#new 
+0

"admin_information_index_path"에 대한 경로가 있습니까? 왜 도우미 메서드가 정의되지 않았다고 생각하는지 설명 할 수 있습니다. –

+0

양식은 해당 메소드에 액세스하려고 시도하지 않아야합니다. 새 메서드 또는 편집 메서드 ... 이상한 요소에 액세스해야합니다. –

+0

양식을 제출할 때이 오류가 발생했다면, 존재하지 않는 이상한 경로를 생성하는 기본 컨트롤러 논리가 있다고 말할 수 있습니다 (특히 컨트롤러에 정의 된 작성 권한이 없지만 나는 당신이 방금 그 포스트에서 그것을 떠났다라고 생각한다). 양식을 렌더링하려고 할 때 이것을 얻는다면 나는 너무 어려움을 당한다. –

답변

1

의 것은 시도 단지

<%= form_for information ,:namespace=>'admin' do |f| %> 

UPDATE :

당신의 경로 '정보'복수로에서

봐,하지만 단수 양식을 사용하여 ' 정보 '

+0

고마워요,하지만 시가 ... 여전히 같은 오류. 다른 아이디어? :) –

+0

당신은 '레이크 루트'의 출력을 게시 할 수 있습니까, 나는 그것이 왜 index_path를 찾으려고 노력하고 있는지 혼란 스럽습니다. ??? – RadBrad

+0

가 질문에 추가되었습니다. 나는 왜 그것이 그 중 하나에 접근하고 있는지 전혀 모른다. ... –

0

이것이 작동하는지 확실하지 않습니다 ... 그냥 추측합니다.

form_for @admin.information 또는 그 행에있는 것

'

"정보"가 아닌 정보입니다 information'.pluralize :

1

당신이 있기 때문에, 컨트롤러의 올바른 양식을 사용해야합니다.

그래서 컨트롤러 및보기 폴더의 이름을 변경하십시오.

+0

머리에 맞춰보세요! 컨트롤러를 InformationPagesController로 변경하고 Information뿐만 아니라 InformationPage로 모델링하고 혼란과 실종을 피하기 위해 모든 마이그레이션, 헬퍼, 테스트, 경로 등을 업데이트했습니다! 그것은 작동합니다! 감사합니다. 감사합니다. –

관련 문제