ブール値でデータベーステーブルを評価するビューがあります。これらのフィールドには、誰がそれを考えているのか、真実か偽かが含まれています。真と偽の出力をビューでRailsに置き換えます
私はこのテキストを「はい」または「いいえ」または「Ja und Nein」のようなものに置き換えたいと考えています。関係ない。それを行うRailsの方法はありますか?
ブール値でデータベーステーブルを評価するビューがあります。これらのフィールドには、誰がそれを考えているのか、真実か偽かが含まれています。真と偽の出力をビューでRailsに置き換えます
私はこのテキストを「はい」または「いいえ」または「Ja und Nein」のようなものに置き換えたいと考えています。関係ない。それを行うRailsの方法はありますか?
<%= @attribute ? 'Yes' : 'No' %>
これはモデルであるかもしれない置くのに良い場所なので、
class Whatever < ActiveRecord::Base
def something_yn
attribute ? 'Yes' : 'No'
end
end
そしてビュー:
<%= @instance.something_yn %>
あなたの例をありがとう。しかし、私はそれを実際には得られません:-D。私の見解では、@ model.bool_statusのようなものがありますが、それはfalseまたはtrueを出力します。これをどうすれば翻訳できますか? –
@ulf、DigitalRossが示唆していることを試してみると、いずれの方法でも自分のビューに必要なものを得ることができます。 Googleの「Ruby三元演算子」は、彼が最初の行に書いたことを理解するためのものです。 '@ model.bool_status'が 'true'の場合、Rubyは 'Yes'を評価します。偽の場合は「いいえ」。 Railsは '<%= %>'を使用してビューを出力します。 '<%= @ model.bool_status? 'はい': 'いいえ'%> ' – Nuby
2人のおかげで、あなたの助けを借りて問題を解決しました:-)。 –
私は元の機能を保持したバージョンを作った、しばらく同様の方法でカスタマイズすることができますDateTime.to_s(:style)
。
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
https://gist.github.com/pehrlich/4963672私はlibにこれを入れて、その後、application.rbで、この行を含める:
require "./lib/boolean.rb"
to_sを上書きすることは正しい解決策であるようです – nurettin
これを洗練されたもので実装することはおもしろいでしょう:http://www.rubyinside.com/ruby-refinements-an-overview-of-a-new-proposed-ruby- feature-3978.html –
[Railsの(またはルビー)の可能性の重複:はい/いいえの代わりに、真/False](http://stackoverflow.com/questions/3664181/rails-or-ruby-yes-no-instead-of-true-false) – Drenmi