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

これまでのところ、ビューとは何の関係もないように見えるため、モデルでそれを定義していない理由(または「それ」が実際に何であるか)がわかりません。ヘルパーが対象です。

変換したいものをDBに保存している場合、それはビューヘルパーに属している場合と属していない場合があります。それを人間が判読できるものに変える場合は、モデルに入れる可能性が高くなります。

于 2013-01-11T02:12:12.013 に答える