Rails 4通用控制器中的强参数

时间:2015-01-26 16:41:09

标签: 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, :question, :subject)
  end

end

但是当我想访问&#34;请联系我们&#34;链接我有以下错误

  

param丢失或值为空:联系

是否可以在&#34;泛型&#34;内部操作强参数?控制器或我应该只将它们用作名为&#34; Contact&#34;的控制器的一部分。 ?

1 个答案:

答案 0 :(得分:2)

看起来错误是因为您在参数哈希中没有接触参数。您想要更像以下内容:

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

或者

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

基本上你应该只在你发布的动作上调用contact_params。