6

これは機能しますが、少し醜いように見えます。

s = :shop
s.to_s.pluralize.to_sym   # => :shops

複数形にするためのより良い方法はありSymbolますか?

4

3 に答える 3

9

String実際のテキストを表すを複数形にすることができます。Symbols はもう少し抽象的です。

したがって、定義上、いいえ。ただし、Symbol クラス定義を開いて以下を追加することもできます。

class Symbol
  def pluralize
    to_s.pluralize.to_sym
  end
end

次に、次のように呼び出すことができます。

:shop.pluralize # => :shops
于 2010-12-12T23:54:48.097 に答える
4

いいえ、そうです。

于 2010-12-12T23:51:39.647 に答える
3

Ruby のクラスを変更することに慣れている場合は、次のように動作します。

class Symbol
  def pluralize
    self.to_s.pluralize.to_sym
  end
end

もっと洗練された解決策をまだ見つけていませんが、もしあったとしても、おそらく上記のものに似たものを Rails が実装しているだけでしょう。

于 2010-12-12T23:54:28.737 に答える