为什么这种导轨没有找到正确的路径?

时间:2012-05-02 22:50:02

标签: ruby-on-rails ruby-on-rails-3 error-handling

所以我一直在撞墙,试图弄清楚为什么这不起作用。我一直在

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

3 个答案:

答案 0 :(得分:1)

尝试

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

更新:

看看你的路线'信息'是多元化的,但你使用单数形式的'信息'

答案 1 :(得分:1)

您必须使用正确形式的控制器,因为:

“information'.pluralize

“信息”,而不是信息。

因此,重命名控制器和视图文件夹。

答案 2 :(得分:0)

我不确定这是否有用......只是一个猜测。

form_for @admin.information或类似的东西。