Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 通用控制器中的Rails 4强参数_Ruby On Rails_Controller_Strong Parameters - Fatal编程技术网

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