【问题标题】:Different behavior of "each" method in development and production“每种”方法在开发和生产中的不同行为
【发布时间】:2018-11-23 23:36:59
【问题描述】:

我的 ERB 模板中有表格。像这样:

<table>
  <% @users.each do |user| %>
    <tr>
      <td><%= user.id %></td>
      <td><%= user.name %></td>
    </tr>
  <% end %>
</table>

它工作正常。假设我有 2 个用户。

表格会是这样的:

1 |呵呵

2 |酒吧

但例如,我决定用 id1 编辑用户。

在开发中它是正确的。像这样:

1 |哎呀

2 |酒吧

但在生产中它将是:

2 |酒吧

1 |哎呀

编辑后用户总是跳到表的末尾。

我认为是因为我在本地使用 SQLite,但 Heroku 使用 PostgreSQL。

我是新手,所以我可能是错的。

&nbsp

我的问题是:我应该如何更改我的代码以使代码在任何地方都能正常工作?

【问题讨论】:

    标签: ruby-on-rails postgresql sqlite


    【解决方案1】:

    在控制器中明确指定顺序。如果顺序未指定,PostgreSQL 不保证任何顺序,所以假设它是随机的。

    @users = User.order(:id)#.limit/pagination
    

    我还建议您在开发和生产中使用相同的数据库,如果您花一些时间在本地设置 PostgreSQL,它会得到回报。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2015-05-28
      • 2022-01-07
      • 2012-12-27
      • 2019-09-24
      相关资源
      最近更新 更多