Ruby on rails 路由错误未初始化常量ContactFormsController
我正在尝试制作我的第一个Rails应用程序,但遇到了路由问题。 My routes.rb是:Ruby on rails 路由错误未初始化常量ContactFormsController,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在尝试制作我的第一个Rails应用程序,但遇到了路由问题。 My routes.rb是: Rails.application.routes.draw do resources :users resources :sessions, only: [:new, :create, :destroy] resources :contact_forms, only: [:new, :create, :destroy] root 'static_pages#home' match '
Rails.application.routes.draw do
resources :users
resources :sessions, only: [:new, :create, :destroy]
resources :contact_forms, only: [:new, :create, :destroy]
root 'static_pages#home'
match '/', to: 'static_pages#home', via: 'post'
match '/manager', to: 'static_pages#manager', via: 'get'
match '/manager', to: 'sessions#create', via: 'post'
match '/signin', to: 'sessions#new', via: 'get'
match '/signout', to: 'sessions#destroy', via: 'delete'
end
我的联系人\u form\u controller.rb是:
class ContactFormController < ApplicationController
def new
@contact_form = ContactForm.new
end
def create
@contact_form = ContactForm.new message_params
@contact_form.save
redirect_to root_path, notice: "Saved"
end
private
def contact_form_params
params.require(:contact_form).permit(:name, :phone, :email, :text)
end
end
class ContactFormController
我的新.html.erb文件是:
<%= form_for @contact_form do |f| %>
<%= f.text_field :name %>
<%= f.text_field :phone %>
<%= f.text_field :email %>
<%= f.text_field :text %>
<%= f.submit %>
<% end %>
怎么了?谢谢
未初始化的常量ContactFormsController
您应该将控制器类名称从ContactFormController
更改为contactformscocontroller
,并将文件名更改为contact\u forms\u controller.rb
此外,在代码中,您需要将@contact\u form=ContactForm.new message\u params
更改为中的@contact\u form=ContactForm.new contact\u form\u params
方法,以避免任何进一步的问题
而且,当你试图创建你的第一个应用程序时,我建议你遵循这些
未初始化的常量ContactFormsController
您应该将控制器类名称从ContactFormController
更改为contactformscocontroller
,并将文件名更改为contact\u forms\u controller.rb
此外,在代码中,您需要将@contact\u form=ContactForm.new message\u params
更改为中的@contact\u form=ContactForm.new contact\u form\u params
方法,以避免任何进一步的问题
另外,在您尝试创建第一个应用程序时,我建议您遵循以下内容:contact_forms
定义了ContactFormController
,而不是ContactFormsController。您需要:
ContactFormsController
视图/联系人表单
重命名为视图/联系人表单
create
方法更新为:
def create
@contact_form = ContactForm.new contact_form_params
@contact_form.save
redirect_to root_path, notice: "Saved"
end
resources:contact\u forms
定义了ContactFormController
,而不是contactformscocontroller
。您需要:
ContactFormsController
视图/联系人表单
重命名为视图/联系人表单
create
方法更新为:
def create
@contact_form = ContactForm.new contact_form_params
@contact_form.save
redirect_to root_path, notice: "Saved"
end
控制器应具有复数名称以匹配该路由 所以它应该被称为contact_forms_controllers.rb 而且是
class ContactFormsController < ApplicationController
....
end
class ContactFormsController
您的视图文件夹、测试控制器名称也需要更新,因此您可能只想生成一个新的控制器并复制所有内容。(然后删除旧的)您的控制器应具有复数名称以匹配该路由 所以它应该被称为contact_forms_controllers.rb 而且是
class ContactFormsController < ApplicationController
....
end
class ContactFormsController
您的视图文件夹、测试控制器名称也需要更新,因此您可能只想生成一个新的控制器并复制所有内容。(然后删除旧的)我已经修复了类名,现在它是:
contactformscocontroller
。如果文件名是contact_forms_controller.rb,那么我就有一个错误:contact forms controller中的name错误#创建
未定义的局部变量或方法
message_params',for#`@verrom我在回答中已经通知过了。请检查:)是的,你是对的:)谢谢你的建议,我会:)我已经确定了类名,现在它:ContactFormsController
。如果文件名是contact_forms_controller.rb,那么我就有一个错误:contact forms controller中的name错误#创建
未定义的局部变量或方法
message_params',for#`@verrom我在回答中已经通知过了。请检查:)是的,你是对的:)谢谢你的建议,我会:)我试图修复它,但出现了下一个错误:NameError in contactforms控制器#创建未定义的局部变量或方法
message_params'for#`@verrom你也需要更新create
方法(请参阅更新)我试图修复它,然后出现下一个错误:name ContactFormsController中的错误#为#`@verrom创建未定义的局部变量或方法
message_params',您还需要更新create
方法(请参阅更新)