Я пытался отладить, почему <% = @ user.address1%> не отображается в представлении. Связанный столбец был настроен как строка, как в:
t.string "address1"
t.string "address2"
t.string "city"
t.string "state"
t.string "zip"
t.string "phone"
Когда я отлаживал модель с помощью debug (@user), я получал:
address1: 123 Main St.
city: Santa Barbara
address2: ""
zip: "93101"
state: CA
Связанное представление для ввода информации в базу данных:
<tr>
<td width="300">Address: </td>
<td><%= u.text_field :address1 %><br></td>
</tr>
<tr>
<td width="300">Address2: </td>
<td><%= u.text_field :address2 %><br></td>
</tr>
<tr>
<td>City:</td>
<td><%= u.text_field :city %></td>
</tr>
<tr>
<td>State:</td>
<td><%= u.text_field :state %></td>
</tr>
<tr>
<td>Zip Code:</td>
<td><%= u.text_field :zip %></td>
</tr>
<tr>
<td>Phone:</td>
<td><%= u.text_field :phone %></td>
</tr>
Я исправил проблему, используя <% = @ user.address1.to_s%>, но из отладочного вывода вместе со схемой я думал, что столбец уже был строкой. Я заметил, что хотя почтовый индекс содержал кавычки, обозначающие строку, адрес1 этого не сделал.
Так почему я не смог изначально использовать <% =@user.address1%>, не преобразовав его в строку? Какая переменная является 123 главной ул. без кавычек?