我的ERB模板中有表格。像这样:
<table>
<% @users.each do |user| %>
<tr>
<td><%= user.id %></td>
<td><%= user.name %></td>
</tr>
<% end %>
</table>
工作正常。假设我有2个用户。
表将如下所示:
1 | foo
2 |酒吧
但是例如,我决定用id1编辑用户。
在开发中将是正确的。像这样:
1 | of
2 |酒吧
但是在生产中它将是:
2 |酒吧
1 | of
编辑后,用户总是跳到表尾。
我认为是因为我在本地使用SQLite,但是Heroku使用PostgreSQL。
我是新手,所以我可能是错的。
我的问题是:我应该如何更改代码以使代码在任何地方都能正常工作?
答案 0 :(得分:1)
在控制器中明确指定顺序。如果未指定顺序,则PostgreSQL不保证任何顺序,因此假定它将是随机的。
@users = User.order(:id)#.limit/pagination
我还建议您在开发和生产中使用相同的数据库,如果您花一些时间在本地设置PostgreSQL,那将会有所收获。