0

Rails アプリで、index メソッドが未定義であるというエラーが表示されます。(新しいメソッドページ)のみを使用してデータを挿入するためだけのこのような単純なフォームを作成しましたが、何らかの理由で現在機能していません

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 に答える