NoMethodError (未定义的方法'aluno' for ActionController:Parameters) - aluno_attributes



我有一个类MatriculaForm,有一些关联(belongs_to和has_many(:

class MatriculaForm < Reform::Form
  property :aluno, form: PessoaForm
  properties :atributos_extras, :mensalidade
  #validation
  validates :aluno, :dia_vencimento, :empresa, presence: true
end

还有_form.html.erb

<%= form_for @matricula_form do |f| %>
    <%= f.fields_for :aluno do |aluno| %>
        <%= aluno.text_field :nome %>
    <% end %>
<% end %>

在控制器上,我做

MatriculaForm.new(params[:matricula])

initialize改革方法提出了一个错误:

NoMethodError (undefined method `aluno' for #<ActionController::Parameters:0x007fe835772a70>

我看到参数变成了aluno_attributes键名称。但是阅读文档,这些参数名称被访问。

我做错了什么?

您是否尝试将关联的属性列入白名单?

association_attributes: [:id .... etc.]

当出现方法错误时,可能是关联不正确?是否正确设置了belongs_tohas_many 这仅在验证时发生吗?表单是否在未经验证的情况下保存?我不确定是否可以以这种方式进行验证。您可能想使用validates_association请检查文档以了解正确的语法。

最新更新