Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未定义的方法'category_path';以创造的形式_Ruby On Rails_Routes - Fatal编程技术网

Ruby on rails 未定义的方法'category_path';以创造的形式

Ruby on rails 未定义的方法'category_path';以创造的形式,ruby-on-rails,routes,Ruby On Rails,Routes,我正在rails中创建我的第一个表单,我希望能够编辑我在db中的类别。 \u 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

我正在rails中创建我的第一个表单,我希望能够编辑我在db中的类别。 \u 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 %>
<%= render 'form' %>

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

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
我也有新的形式,这是渲染ok new.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 %>
<%= render 'form' %>

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

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

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

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