2

ActiveSupport は便利な方法を提供していますto_sentence。したがって、

require 'active_support'
[1,2,3].to_sentence  # gives "1, 2, and 3"
[1,2,3].to_sentence(:last_word_connector => ' and ')  # gives "1, 2 and 3"

余分なコンマを入れたくないので、最後の単語コネクタを変更できるのは良いことです。しかし、余分なテキストが必要です: 11 文字ではなく 44 文字です!

質問:last_word_connector: のデフォルト値をに変更する最もルビーらしい方法は' and '何ですか?

4

3 に答える 3

12

それはローカライズ可能なので、デフォルトの 'en' 値の ' および ' を指定するだけです。support.array.last_word_connector

見る:

から: conversion.rb

def to_sentence(options = {})
...
   default_last_word_connector = I18n.translate(:'support.array.last_word_connector', :locale => options[:locale])
...
end

ステップバイステップガイド:

まず、rails プロジェクトを作成します。

レール国際化

次に、en.yml ファイルを編集します: vim config/locales/en.yml

ja:
  サポート:
    配列:
      last_word_connector: "および"

最後に、それは機能します:

 
開発環境のロード (Rails 2.3.3)
>> [1,2,3].to_sentence
=>「1、2、3」
于 2009-08-26T12:02:52.130 に答える
-1
 class Array
   alias_method :old_to_sentence, :to_sentence
   def to_sentence(args={})
     a = {:last_word_connector => ' and '}
     a.update(args) if args
     old_to_sentence(a)
   end
 end
于 2009-08-26T12:16:36.277 に答える