0

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

我正在尝试对这个控制器/模型使用强参数。目前,我的新操作出现 nomethoderror。有任何想法吗?我认为这与我的模型不是一个成熟的模型有关。?

代码精简,便于查看。

模型:

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
4

1 回答 1

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

于 2013-09-29T04:22:40.077 回答