Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby中名词的复数化和去首化_Ruby On Rails_Ruby_Capitalization_Pluralize - Fatal编程技术网

Ruby on rails Ruby中名词的复数化和去首化

Ruby on rails Ruby中名词的复数化和去首化,ruby-on-rails,ruby,capitalization,pluralize,Ruby On Rails,Ruby,Capitalization,Pluralize,我正在RubyonRails中为特定网页实现一个视图计数功能。我使用haml列表来实现我的目标。(JavaScript库获取列表并将其呈现为下拉列表。) 以下是代码片段: %li.action = link_to t(question.views_count.to_s + ' views') 这里我的问题是,视图中的V在输出中是大写的,并且视图是复数的,即使对于0和1个视图也是如此。有什么办法可以解决这些问题吗?请参阅此链接以了解多元化 在您的控制台中尝试,例如 1.9.3p125 :0

我正在RubyonRails中为特定网页实现一个视图计数功能。我使用haml列表来实现我的目标。(JavaScript库获取列表并将其呈现为下拉列表。)

以下是代码片段:

%li.action
  = link_to t(question.views_count.to_s + ' views')

这里我的问题是,视图中的V在输出中是大写的,并且视图是复数的,即使对于0和1个视图也是如此。有什么办法可以解决这些问题吗?

请参阅此链接以了解多元化

在您的
控制台中尝试,例如

1.9.3p125 :028 > pluralize(2, 'View')
 => "2 Views"
更新

在控制台中尝试并使用

"view".capitalize 

你做错了,你应该让I18N系统(即
t
方法)自己处理多元化。正确的复数处理是非常复杂的,不要试图用字符串处理自己。您正在使用
t
方法,但它可以为您做更多的事情

从:

:count
插值变量有一个特殊的作用,因为它被插值到翻译中,并用于根据CLDR定义的复数化规则从翻译中选择复数化:

I18n.backend.store_translations :en, :inbox => {
  :one => '1 message',
  :other => '%{count} messages'
}

I18n.translate :inbox, :count => 2
# => '2 messages'
因此,假设您已正确设置了消息数据库,那么您将执行以下操作:

t(:views, :count => question.views_count)
views:
  one: "1 view"
  other: "%{count} views"
您的英文翻译文件将包含以下内容:

t(:views, :count => question.views_count)
views:
  one: "1 view"
  other: "%{count} views"

谢谢有人能告诉我为什么我在字符串中使用了一个小的v,却得到了大写的v吗?我想这就是我想要的。谢谢你的回答。