Заменить вывод true и false в представлении на Rails - PullRequest
0 голосов
/ 08 февраля 2011

У меня есть представление, которое оценивает таблицу базы данных с логическими значениями. Те поля содержат, кто думал об этом, истинное или ложное.

Я бы хотел заменить этот текст на что-то вроде Да и Нет. Или Ja und Nein. Не имеет значения Есть ли способ Rails сделать это?

Ответы [ 2 ]

8 голосов
/ 08 февраля 2011
<%= @attribute ? 'Yes' : 'No' %>

Хорошее место для этого может быть в модели, поэтому

class Whatever < ActiveRecord::Base
  def something_yn
    attribute ? 'Yes' : 'No'
  end
end

А затем в представлении:

<%= @instance.something_yn %>
2 голосов
/ 16 февраля 2013

Я сделал версию, которая сохраняет оригинальную функциональность, в то же время позволяя настраивать аналогично тому, как DateTime.to_s(:style).

https://gist.github.com/pehrlich/4963672

class TrueClass
  def to_s(style = :boolean)
    case style
      when :word then 'yes'
      when :Word then 'Yes'
      when :number then '1'
      else 'true'
    end
  end
end

class FalseClass
  def to_s(style = :boolean)
    case style
      when :word then 'no'
      when :Word then 'No'
      when :number then '0'
      else 'false'
    end
  end
end

Я помещаю это в lib и затем включаю с этой строкой в ​​application.rb:

require "./lib/boolean.rb"
...