find(params):ActionView :: TemplateError(#haus的未定义方法'each')

时间:2010-10-18 13:23:13

标签: ruby-on-rails

我有一个控制器,其值要传递给rhtml。我已经设法正确地获取了值,并且基于此,我需要在rhtml中执行操作。对于代码段,

def getsubtable     
  @subtables = Haus.find(params[:bewohner_id])

从上面的方法来看,当我调试它时,我可以得到“bewohner_id”的正确值。 (例如:bewohner_id =“2”)。现在,我需要在另一种形式(getsubtable.rhtml)中显示与bewohner_id =“2”对应的值列表。所以,如果我得到“2”,我将以新的形式显示“a,b,c”

<% for subtable in @subtables %>
  <option value="<%= subtable.bewohner_id %>"><%= subtable.bewohner_id %></option>
<% end %>

然而我收到错误

ActionView::TemplateError (undefined method 'each' for #haus) 

请指导我,如何使用bewohner_id中的'2'值并在上面的<option value>中使用

谢谢

1 个答案:

答案 0 :(得分:1)

Haus.find(params[:bewohner_id])

返回单个记录,而不是集合。如果你想要一个集合,你需要使用

Haus.find_all_by_bewohner_id(params[:bewohner_id])

另外,请使用@subtables.each而不是for subtable in @subtables