0

我的 Rails 应用程序中有一个错误,告诉我索引方法未定义。我创建了一个如此简单的表单,仅用于使用(新方法页面)插入数据,但由于某种原因它现在无法正常工作

class PeoplesController < ApplicationController

  def index

  end

  def new
    @people = People.new
  end

  def create
    @people = People.new(params[:@people])
    if @people.save
      redirect_to new_people_path
    end
  end
end


# new.html.haml
<h2>Hello there!</h2>
<hr >
<%= form_for @people do |f| %>
    FirstName:<%= f.text_field :first %><br />
    LastName:<%= f.text_field :last %><br />
    <%= f.submit %>
<% end %>

这是错误代码:

    NoMethodError in Peoples#new

Showing /Users/kasim/Desktop/form/app/views/peoples/new.html.erb where line #3 raised:

undefined method `people_index_path' for #<#<Class:0x007fa33da58d58>:0x007fa34031c578>
Extracted source (around line #3):

1: <h2>Hello there!</h2>
2: <hr >
3: <%= form_for @people do |f| %>
4:  FirstName:<%= f.text_field :first %><br />
5:  LastName:<%= f.text_field :last %><br />
6:  <%= f.submit %>
4

1 回答 1

0

form_for的文档说 form_for 调用相当于这个

<%= form_for @post, :as => :post, :url => post_path(@post), :method => :put, :html => { :class => "edit_post", :id => "edit_post_45" } do |f| %>
  ...
<% end %>

请注意,url 属性正在调用命名路由。在您的情况下,命名路线似乎是 people_index_path。我会运行 rake 路线并确保有问题的命名路线确实存在。

于 2012-10-30T04:25:03.030 回答