Rails 4强参数错误

时间:2013-09-29 04:17:45

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

我正在使用rails 4.我有一个使用验证的模型,但不存储任何记录。它仅用于发送电子邮件的Web联系表单。

我正在尝试使用此控制器/模型的强参数。目前我对我的新动作感到非常恐怖。有任何想法吗?我认为这与我的模型不是一个完整的模型有关。?

代码缩小以便于查看。

模型:

class Message
  include ActiveModel::Model
  include ActiveModel::ForbiddenAttributesProtection
end

控制器:

class MessagesController < ApplicationController
  def new
    @message = Message.new
  end

  private

    def project_params
      params.require(:message).permit(:name, :email, :content)
    end
end

1 个答案:

答案 0 :(得分:2)

您的project_params需要重命名为message_params,因为您希望在MessagesController而非project中允许留言。

请尝试:

class MessagesController < ApplicationController
  def new
    @message = Message.new
  end

  private

    def message_params
      params.require(:message).permit(:name, :email, :content)
    end
end

更新

此外,虽然您已经提到“为了便于查看而缩减了代码”,但我还要补充一点,您还需要为这些允许的属性定义att_accessor,如下所示:

class Message
  include ActiveModel::Model
  include ActiveModel::ForbiddenAttributesProtection

  attr_accessor :name, :email, :content
end

请参阅路易十四在这个问题中的回答:“Rails Model without a table