在 Slim 中添加 Non-control, non-output Ruby 代码

Add Non-control, non-output Ruby code in Slim

我想在 Ruby slim 中进行 Ruby 变量赋值。显然我尝试使用控制符号 - 的方式不起作用。任何想法如何

(看下面代码块中的注释)

- @locations.each do |station|
  - @sources.each do |source|

    # the following code is meant to be a plain Ruby code for variable assignment
    # how can I do that in Slim?

    - reading = Reading.where(location: station, source: source).order('time').last
    tr
      td = station.name
      td = reading.time.in_time_zone(station.timezone)
      td = reading.source.name
      td = reading.temperature.value.to_s if reading.temperature

符号-的使用是正确的。它可以用于任何非输出 Ruby 代码。即下面的行是正确的,并放在上面源代码的正确缩进处。

- reading = Reading.where(location: station, source: source).order('time').last

我得到的错误与 slim 无关。改成erb后,还是出现同样的错误。这可能与我的数据库更改有关(已从 Postgres 更改为 Sqlite3,我只更改了 config/database.yml 文件和 gemfile)。最后,我通过使用 Sqlite 创建一个新应用来解决。