0

好的,所以在我的控制器的索引部分我设置

@patients = Patient.all

然后在patients_helper.rb

def race_abrev
 return self.caucasian
end

其中 caucasian 是患者表中的整数数据类型列

然后在视图中 index.html.erb

<% @patients.each do |p| %>
  <td><%= p.gender %></td>
  <td><%= p.ethnicity %></td>
  <td><%= p.race_abrev %></td>
<% end %>

我得到一个

undefined method `race_abrev' for #<Patient:0xb4d95cd8>

我检查了表格,我期待着 patient.caucasian 返回整数 1,我错过了什么……对我似乎有的基本误解有什么见解吗?

4

1 回答 1

2

race_abrev是一个助手,而不是一个方法Patient

<%= race_abrev(p) %>

并且助手本身会返回p.caucasian,尽管看起来你实际上想要用 的值caucasian一些事情,比如比较之类的。

所有这一切,我不确定你为什么不在模型上定义它(或者“它”实际上是什么),因为到目前为止它似乎与视图没有任何关系,这是什么视图帮手是为了。

如果您要在数据库中存储某些内容,则您想对其进行转换,它可能属于也可能不属于视图助手;如果要将其变成人类可读的东西,我更有可能将其放入模型中。

于 2013-01-11T02:12:12.013 回答