创建表单时未定义的方法`category_path'

时间:2013-06-13 18:21:47

标签: ruby-on-rails routes

我在rails中创建我的第一个FORM,我希望能够编辑db中的我的类别。 的 _form.html.erb

<%= form_for(@category) do |f| %>
  <% if @category.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@category.errors.count, "error") %> brání v uložení kategorie.</h2>

      <ul>
      <% @category.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

edit.html.erb

<%= render 'form' %>

<%= link_to 'Show', @category %> |
<%= link_to 'Back', backend_categories_path %>

URL:

http://localhost:3000/backend/categories/1/edit

错误:

undefined method `category_path' for #<#<Class:0x46696f8>:0x3f38478>

路线:

    home_index GET    /home/index(.:format)                  home#index
                 root        /                                      home#index
              contact        /contact(.:format)                     home#contact
         backend_root        /backend(.:format)                     backend/admin#index
   backend_categories GET    /backend/categories(.:format)          backend/categories#index
                      POST   /backend/categories(.:format)          backend/categories#create
 new_backend_category GET    /backend/categories/new(.:format)      backend/categories#new
edit_backend_category GET    /backend/categories/:id/edit(.:format) backend/categories#edit
     backend_category GET    /backend/categories/:id(.:format)      backend/categories#show
                      PUT    /backend/categories/:id(.:format)      backend/categories#update
                      DELETE /backend/categories/:id(.:format)      backend/categories#destroy

我也有新表格,表现良好 的 new.html.erb

<%= form_for @category, :url => { :action => "create" }, :html => {:class => "nifty_form"} do |f| %>
  <%= f.text_field :name %>
  <%= f.submit "Vytvořit" %>
<% end %>

所以我有一个问题为什么编辑表单不起作用以及在单独的文件中使用表单有什么好处?谢谢

1 个答案:

答案 0 :(得分:1)

您需要提供路线的/backend/部分;试试这个:

<%= form_for [:backend, @category] do |f| %>