【问题标题】:Rails 4 Strong Parameters in generic controller通用控制器中的Rails 4强参数
【发布时间】:2015-01-26 16:41:09
【问题描述】:

我有一个“通用”控制器负责管理所有公共页面和操作

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

但是当我想访问“联系我们”链接时出现以下错误

参数缺失或值为空:联系人

是否可以在“通用”控制器中操作强参数,还是应该只将它们用作名为“Contact”的控制器的一部分?

【问题讨论】:

    标签: ruby-on-rails controller strong-parameters


    【解决方案1】:

    看起来错误是因为您在参数哈希中没有联系人参数。您想要更多类似以下的内容:

    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。

    【讨论】:

    • 我实际上添加了一个条件语句来区分控制器中的操作状态,并按照您的说明进行工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 2013-12-07
    相关资源
    最近更新 更多