我有一个类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_to
和has_many
这仅在验证时发生吗?表单是否在未经验证的情况下保存?我不确定是否可以以这种方式进行验证。您可能想使用validates_association
请检查文档以了解正确的语法。