对于这个蹩脚的问题感到抱歉,但是我在轨道上遇到了ruby的新手,并且当我正在渲染“新的”时,我试图列出模型的所有对象。查看另一个模型,我收到错误
我的cliente_controller.rb有:
class ClientesController < ApplicationController
before_action :set_cliente, only: [:show, :edit, :update, :destroy]
# GET /clientes/new
def new
@cliente = Cliente.new
@advogados = Advogado.find(:all)
end
在我的cliente / new.html.erb我有:
<% @advogados.each do |advogado| %>
<%= @advogado.nome %>
<% end %>
,抛出的错误是:
undefined method `nome' for nil:NilClass
但是当我这样做时:
<%= @advogados %>
打印:
[#<Advogado id: 5, nome: "Adv1", created_at: "2014-05-02 13:58:33", updated_at: "2014-05-02 13:58:33">, #<Advogado id: 6, nome: "Adv2", created_at: "2014-05-02 13:58:48", updated_at: "2014-05-02 13:58:48">]
所以@advogados不是null,但是在循环遍历时我无法以某种方式访问变量。任何想法?
由于
答案 0 :(得分:4)
<%= advogado.nome %>
不
<%= @advogado.nome %>
答案 1 :(得分:2)
您的代码正在迭代@advogados
列表,并在块的持续时间内将每个代码存储在变量advogado
中。
在阻止你应该使用advogado
,而不是@advogado
。所以请致电advogado.nome
。
答案 2 :(得分:1)
<%= advogado.nome %>
是因为您被重新定义为每个。
答案 3 :(得分:1)
@advogado.nome
应为advogado.nome
,请在导轨上的红宝石中查看此instance variables
<% @advogados.each do |advogado| %>
<%=advogado.nome%>
<% end %>