Ruby on rails 通用控制器中的Rails 4强参数
我有一个“通用”控制器,负责管理所有公共页面和操作Ruby on rails 通用控制器中的Rails 4强参数,ruby-on-rails,controller,strong-parameters,Ruby On Rails,Controller,Strong Parameters,我有一个“通用”控制器,负责管理所有公共页面和操作 class PublicController < ApplicationController def index end def contact @contact = Contact.new(contact_params) end private def contact_params params.require(:contact).permit(:name, :email, :questi
class PublicController < ApplicationController
def index
end
def contact
@contact = Contact.new(contact_params)
end
private
def contact_params
params.require(:contact).permit(:name, :email, :question, :subject)
end
end
class PublicController
但是当我想访问“联系我们”链接时,我有以下错误
参数丢失或值为空:contact
是否可以在“通用”控制器内操作强参数,或者我应该仅将它们用作名为“Contact”的控制器的一部分?看起来错误是因为参数哈希中没有Contact参数。您需要更像以下内容的内容:
def contact
@contact = Contact.new
end
def send_contact
@contact = Contact.new(contact_params)
end
private
def contact_params
params.require(:contact).permit(:name, :email, :question, :subject)
end
或
本质上,您应该只对要发布到的操作调用contact_params。我实际上添加了一个条件语句,以区分控制器中操作的状态,并按照您的说明使其工作。
def index
@contact = Contact.new
end
def contact
@contact = Contact.new(contact_params)
end
private
def contact_params
params.require(:contact).permit(:name, :email, :question, :subject)
end