2012-05-02 77 views
0

所以我一直在撞牆,試圖找出爲什麼這不起作用。我不斷收到爲什麼這個rails表格找不到正確的路徑?

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

隨着跟蹤:

# ./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' 

任何提示,在正確的方向?


我的路線:

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或沿着這些線。

1

必須使用控制器的正確形式,因爲:

「information'.pluralize

「信息」,而不是信息。

因此,重命名控制器和查看文件夾。

+0

擊中它的頭!將控制器重命名爲InformationPagesController,並將模型重命名爲InformationPage,而不僅僅是信息,以及更新所有遷移,幫助器,測試,路由等等,以避免混淆。有用!謝謝你,謝謝你,謝謝你! –

相關問題