Rails: как исправить неопределенную ошибку метода в форме?
У меня есть форма с флажком. Вот форма:
<div class="border-form-div">
<%= form_for(@user, class: "form-horizontal") do |f| %>
<% if @user.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
<ul>
<% @user.errors.each do |attribute,message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<% if @user.role == "candidat" %>
<%= f.fields_for :profileable do |pf| %>
<div class="field">
<%= f.label :actif %> <br />
<%= f.check_box :actif, {}, true, false %> <br />
</div>
<% end %>
<br>
<div class="actions">
<%= f.submit "Mettre à jour",class: 'btn btn-primary' %>
</div>
<% end %>
</div>
Я хочу перейти на страницу редактирования: http://localhost:3000/users/3/edit
Но у меня есть следующая ошибка:
undefined method `actif' for #<User:0x007fadc2674c48>
Extracted source (around line #35):
<div class="field">
<%= f.label :actif %> <br />
<%= f.check_box :actif, {}, true, false %> <br />
</div>
Кажется, что он не распознает actif как атрибут. В чем проблема. Actif - это новое поле в моей модели и форме.
1 ответ
Решение
Измените f.checkbox на pf.checkbox, я думаю.
<%= f.fields_for :profileable do |pf| %>
<div class="field">
<%= pf.label :actif %> <br />
<%= pf.check_box :actif, {}, true, false %> <br />
</div>