我在使用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 %>
这看起来很奇怪,因为模型正在初始化(或者似乎是)。在此先感谢大家的帮助! (:
答案 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