Tengo una pregunta bastante opuesta a las preguntas que ya se han hecho aquí. Permítanme comenzar con el ejemplo.
Cuando voy a la consola de Rails y Stock.where(item_code: "1234").pluck(:description)
me sale lo siguiente:
(4.5ms) SELECT "stocks"."description" FROM "stocks" WHERE "stocks"."item_code" = ? [["item_code", "1234"]] => ["R Bag1234", "R Bag1234"]
Como puede ver, hay claramente 2 espacios en la descripción .
R Bag1234
Pero cuando imprimo esto en mi vista usando un bucle, se elimina un espacio. es decir, la descripción es
R Bag1234
Y no quiero que se eliminen espacios. Por favor consejo qué hacer jajaja. ¡Gracias!
Aquí hay un fragmento de la vista (index.html.erb)
<% @stocks.each do |stock| %> <tr> <td><%= stock.item_code %></td> <td><%= stock.description %></td> <td><%= stock.item_unit %></td> <td><%= stock.stock %></td> <tr> <% end %>Aquí hay un fragmento del controlador (stocks_controller.rb)
class StocksController < ApplicationController before_action :set_stock, only: %i[ show edit update destroy ] # GET /stocks or /stocks.json def index @stocks = Stock.all endY mi schema.rb se ve así
ActiveRecord::Schema.define(version: 2021_12_23_215326) do create_table "stocks", force: :cascade do |t| t.string "item_code" t.text "description" t.string "item_unit" t.decimal "stock" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false end endAh, también estoy usando Ruby 3.0.0 y Rails 6.1.4 en Windows 10.
EDITAR:
Después de un comentario útil, parece que es un problema con HTML y no tiene mucho que ver con RoR. Por ejemplo: https://jsfiddle.net/ugvkqsn2/ el código del ejemplo anterior muestra 2 espacios con html puro, pero el navegador solo muestra 1 espacio.
Establezca la propiedad CSS white-space en pre en los elementos <td> donde no desea que el espacio en blanco colapse de esta manera:
<% @stocks.each do |stock| %> <tr> <td><%= stock.item_code %></td> <td style="white-space: pre;"><%= stock.description %></td> <td><%= stock.item_unit %></td> <td><%= stock.stock %></td> <tr> <% end %>