ruby-on-rails – 未定义的方法“_index_path”form_for问题

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 未定义的方法“_index_path”form_for问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在RoR中使用form_for帮助器生成一个表单,但是我遇到似乎是一个路由错误.以下是相关文件

车型/ equipment.rb

  1. class Equipment < ActiveRecord::Base
  2. attr_accessible :name,:tracking_number
  3. validates :tracking_number,:presence => true,:uniqueness => { :case_sensitive => true }
  4. end

控制器/ equipments_controllers.rb

  1. class EquipmentsController < ApplicationController
  2. def index
  3. @equipments = Equipment.paginate(:page => params[:page])
  4. end
  5.  
  6. def new
  7. @equipment = Equipment.new
  8. end
  9.  
  10. end

视图/设备/ new.html.rb

  1. <h1>Add an equipment</h1>
  2. <%= form_for (@equipment) do |f| %>
  3. <%= render 'shared/error_messages',:object => f.object %>
  4. <div class="field">
  5. <%= f.label :name %> <br />
  6. <%= f.text_field :name %>
  7. </div>
  8. <div class="field">
  9. <%= f.label :tracking_number %><br />
  10. <%= f.text_field :tracking_number %>
  11. </div>
  12. <%= f.submit "Add" %>
  13. <% end %>

的routes.rb

  1. EquipmentTracking::Application.routes.draw do
  2. root :to => "equipments#index"
  3. resources :equipments
  4. end

我看不到任何错误,但输出如下:

  1. NoMethodError in Equipments#new
  2. Showing /opt/ror/equipment_tracking/app/views/equipments/new.html.erb where line #2 raised:
  3. undefined method `equipment_index_path' for #<#<Class:0xb6725a2c>:0xb6724640>

如果我把它改成了

  1. <%= form_for (:equipment) do |f| %>

它似乎工作正常.我也确定静态变量@equipment从此开始传递

  1. <%= @equipment %>

回报

  1. #<Equipment:0xb685ece0>

我在这里亏了我刚刚完成了我在跟踪railstutorial.org的书时所做的一切,我能够完成这本书.

解决方法

我想你的问题在于你使用“设备”一词.如果您打开Rails控制台运行’equipment’.pluralize,您会看到复数“设备”是“设备”.

所以我会通过你的项目搜索,并用“设备”替换任何“设备”的实例,我敢打赌这将修复它.

猜你在找的Ruby相关文章