Rails未定义方法`<model_name> _index_path&#39;对</模型名称>

时间:2014-06-10 15:12:20

标签: ruby-on-rails ruby forms activerecord ruby-on-rails-4

我在使用form_for时遇到了麻烦。 Rails发布了以下错误:

undefined method `<model_name>_index_path' for #<#<Class:0x9f6b4dc>:0x9c381c0>

在denuncia.html.erb这个确切的行中(用Denuncia替换@denuncia.new赢了工作):

<%= form_for @denuncia do |f| %>

以下是所有代码:

的routes.rb

Rails.application.routes.draw do
  root 'welcome#index'
  get 'form' => 'form#denuncia'
  resources :form

form_controller.rb

class FormController < ApplicationController
    def denuncia
       @denuncia = Denuncia.new
    end
end

denuncia.html.erb

<%= form_for @denuncia do |f| %>
    <%= f.input :onde %>
    <%= f.input :quando %>
    <%= f.input :descricao %>
    <%= f.button :submit %>
<% end %>

这看起来很奇怪,因为模型正在初始化(或者似乎是)。在此先感谢大家的帮助! (:

1 个答案:

答案 0 :(得分:0)

由于模型为Denuncia,只需让form_for @denuncia rails查看模型,然后尝试转到未定义的denuncias_path。资源通常是多元化的,因此如果您更改为resources :forms,则更改为此应该可以正常工作

<%= form_for @denuncia, url: forms_path do |f| %>

很抱歉,不确定resources :form的路径是什么,但您可以rake routes查找。

如果您更改为resources forms,则需要进行更改以将表单目录复数到表单,form_controller更改为forms_controller