如何在 Ruby (on Rails) 中对符号进行复数形式?

发布于 2024-10-06 23:43:23 字数 139 浏览 7 评论 0原文

这可行,但看起来有点难看:

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

是否有更好的方法来复数 Symbol

This works, but looks a little bit ugly:

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

Is there a nicer way to pluralize a Symbol ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

旧人九事 2024-10-13 23:43:23

您可以复数一个String,它代表实际的文本。 Symbol 更加抽象一些。

所以,根据定义,不。但是,也许您可​​以打开 Symbol 类定义并添加:

class Symbol
  def pluralize
    to_s.pluralize.to_sym
  end
end

然后,您可以调用:

:shop.pluralize # => :shops

You can pluralize a String, which represents actual text. Symbols are a bit more abstract.

So, by definition, no. However, perhaps you could open up the Symbol class definition and add:

class Symbol
  def pluralize
    to_s.pluralize.to_sym
  end
end

Then, you can just call:

:shop.pluralize # => :shops
演多会厌 2024-10-13 23:43:23

不,就是这样。

Nope, that's the way.

零崎曲识 2024-10-13 23:43:23

如果您愿意改变 Ruby 的类,那么这可行:

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

我还没有找到更优雅的解决方案,尽管我怀疑如果有的话,它可能只是 Rails 实现与我上面类似的东西。

If you're comfortable altering Ruby's classes, then this works:

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

I have yet to find a more elegant solution, although I suspect if there was, it would probably just be Rails implementing something similar to what I have above.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文