1

并感谢您的帮助!

我正在构建我的第一个 Rails 应用程序,但遇到了这个问题:

我从 index.html.erb 为一个名为“Expediente”的类制作了一个脚手架,我可以通过 @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:NilClass 错误消息发送未定义的方法 `each':

. . .

      <% @expedientes.each do |expediente| %>

      <%if expediente.individual?%>

      <% expediente.pacientes.each do |paciente| %>

     <option value=126><%= paciente.nombre_completo %></option>

     <%end%>

     <%end%>  

     <%end%>

. . .

再次感谢您的帮助!!

4

3 回答 3

2

因为您的 ExpedientesController(呈现 index.html.erb 视图)中的 index 操作定义了变量@expedientes,但您的新操作(呈现 new.html.erb 视图)没有。

于 2012-11-29T06:22:37.490 回答
0

New在控制器中的操作构建了 Expedientes 类的单个实例,因此,它不是您可以使用each.

于 2012-11-29T06:22:26.913 回答
0

结合以上 2 个答案在你的索引方法中,你可能有类似的东西

@expedientes = Expediente.all 

在新方法中,您将拥有

@expedient = Expediente.new

在你的新方法中添加这个

@expedientes = Expediente.all  

最终的

def new 
    @expedient = Expediente.new
   @expedientes = Expediente.all  
end
于 2012-11-29T06:37:13.903 回答