У меня есть две модели, Персонаж и Статистика. Их взаимосвязь: Персонаж has_one. Статистика и Статистика принадлежит_Символу.
Я сгенерировал каркасы для обеих моделей, и я хочу создать новую Статистику, если ее нет, отобразить Статистическую модель и отредактировать Статистическую модель, все из представления символов. Я не уверен, как редактировать контроллеры или писать код в представлении, чтобы это произошло.
Вот код. Из представления символов:
<h2>Statistics</h2>
<%= render "statistics/form" %>
Однако, это дает мне эту ошибку:
undefined method `build' for nil:NilClass
Extracted source (around line #1):
1: <%= form_for ([@character, @character.statistic.build]) do |f| %>
2: <% if @statistic.errors.any? %>
3: <div id="error_explanation">
4: <h2><%= pluralize(@statistic.errors.count, "error") %> prohibited this statistic from being saved:</h2>
Итак, я предполагаю, что первая строка написана неправильно? Я подумал, что это сработает, поскольку я хочу, чтобы каждый экземпляр статистики принадлежал одному персонажу, и это создаст эти отношения.
Вот код из статистики / формы:
<%= form_for ([@character, @character.statistic.build]) do |f| %>
<% if @statistic.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@statistic.errors.count, "error") %> prohibited this statistic from
being saved:</h2>
<ul>
<% @statistic.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :strength %><br />
<%= f.text_field :strength %>
...
<div class="field">
<%= f.label :charisma %><br />
<%= f.text_field :charisma %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Заранее спасибо за любую помощь. Я боролся с такими моделями уже около недели, и я очень расстроен, что все еще не понимаю.