并感谢帮助!!
我正在构建我的fisrt Rails应用程序,并遇到此问题:
我为一个名为“Expediente”的类创建了一个Scaffold,来自index.html.erb我可以通过@expedientes获取访问权限,但是我无法通过new.html.erb进行访问。
这是代码:
// index.html.erb,运行得很好: 。 。
<% @expedientes.each do |expediente| %>
<tr>
<td class="custom"> <%= expediente.id %> </td>
<td class="custom"> <%= expediente.tipo_expediente %> </td>
<td class="custom">
<% expediente.pacientes.each do |paciente| %>
<%= paciente.nombre_completo %><br/>
<% end %>
。 。
// new.html.erb,这根本不起作用,并为nil发送未定义的方法`each':NilClass错误消息:
。 。
<% @expedientes.each do |expediente| %>
<%if expediente.individual?%>
<% expediente.pacientes.each do |paciente| %>
<option value=126><%= paciente.nombre_completo %></option>
<%end%>
<%end%>
<%end%>
。 。
再次感谢你的帮助!
答案 0 :(得分:2)
因为ExpedientesController中的索引操作(呈现index.html.erb视图)定义变量@expedientes
,但您的新操作(呈现new.html.erb视图)不会。
答案 1 :(得分:0)
您在控制器中的New
操作会构建Expedientes类的单个实例,因此,它不是您可以使用each
进行迭代的集合。
答案 2 :(得分:0)
结合以上2个答案 在索引方法中,您可能会有类似
的内容@expedientes = Expediente.all
在New方法中你会有
@expedient = Expediente.new
在新方法中添加
@expedientes = Expediente.all
最终
def new
@expedient = Expediente.new
@expedientes = Expediente.all
end