我是铁杆新手。我想为page_entries_info显示我的自定义消息。我已经通过以下链接但不能理解。任何人都可以详细解释。
how-do-i-specify-custom-wording-in-a-will-paginate-view-helper
答案 0 :(得分:8)
这是默认加载的内容,取自project wiki
en:
will_paginate:
page_entries_info:
single_page:
zero: "No %{model} found"
one: "Displaying 1 %{model}"
other: "Displaying all %{count} %{model}"
single_page_html:
zero: "No %{model} found"
one: "Displaying <b>1</b> %{model}"
other: "Displaying <b>all %{count}</b> %{model}"
multi_page: "Displaying %{model} %{from} - %{to} of %{count} in total"
multi_page_html: "Displaying %{model} <b>%{from} - %{to}</b> of <b>%{count}</b> in total"
您需要更改multi_page_html
和multi_page
,最后两个条目。
在你的en.yml
文件中(或其他任何内容)放置如下内容:
en:
will_paginate:
line_item:
page_entries_info:
multi_page: "Displaying %{from} - %{to} of %{count} of %{model}"
multi_page_html: "Displaying <b>%{from} - %{to}</b> of <b>%{count}</b> of %{model}"
如果您对yml文件有困难,rails i18n guide有点高级,但提供了有关如何使用yml文件的详细信息 - 只需向下滚动一点:)。
我希望它有所帮助。
答案 1 :(得分:8)
另一个选择是您可以在page_entries_info()
中定义ApplicationHelper
方法
并像往常一样使用它。如果您知道不需要覆盖边缘情况(如我的情况),这将为您提供更大的灵活性,甚至可以更加清洁和高效。您可以参考原始方法定义here,看看您需要实现的所有内容。以下代码将运行您的大部分问题!
def page_entries_info(collection, options = {})
entry_name = options[:entry_name] || (collection.empty?? 'item' :
collection.first.class.name.split('::').last.titleize)
if collection.total_pages < 2
case collection.size
when 0; "No #{entry_name.pluralize} found"
else; "Displaying all #{entry_name.pluralize}"
end
else
%{Displaying %d - %d of %d #{entry_name.pluralize}} % [
collection.offset + 1,
collection.offset + collection.length,
collection.total_entries
]
end
end