我有两个模型,字符和统计。它们的关系是 Character has_one Statistic 和 Statistic belongs_to Character。
我已经为这两个模型生成了脚手架,我想要做的是能够在不存在的情况下创建一个新的 Statistic,显示 Statistic 模型并编辑 Statistic 模型,所有这些都来自 Character 视图。我不确定如何编辑控制器或在视图中编写代码来实现这一点。
这是一些代码。从字符视图:
<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>
所以我假设我没有正确写第一行?我认为这会起作用,因为我希望 Statistic 的每个实例都属于一个角色,这会创建这种关系。
这是来自统计/表格的代码:
<%= 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 %>
提前感谢您的帮助。大约一周以来,我一直在努力以这种方式关联模型,但我很沮丧,因为我仍然不理解。