7

Railsは初めてです。page_entries_infoのカスタムメッセージを表示したい。次のリンクをたどりましたが、よくわかりません。どなたか詳しく説明してもらえますか?

how-do-i-specify-custom-wording-in-a-will-paginate-view-helper

4

2 に答える 2

8

これは、プロジェクト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&nbsp;%{count}</b> %{model}"

      multi_page: "Displaying %{model} %{from} - %{to} of %{count} in total"
      multi_page_html: "Displaying %{model} <b>%{from}&nbsp;-&nbsp;%{to}</b> of <b>%{count}</b> in total"

最後の2つのエントリ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}&nbsp;-&nbsp;%{to}</b> of <b>%{count}</b> of %{model}"

ymlファイルレールについて問題がある場合は、i18nガイドは少し進んでいますが、ymlファイルの使用方法に関する優れた情報を提供します-少し下にスクロールしてください:)。

お役に立てば幸いです。

于 2012-08-01T11:38:48.453 に答える
8

page_entries_info()もう1つのオプションは、でメソッドを定義し、ApplicationHelper 通常どおりに使用できることです。これにより、柔軟性が向上し、エッジケースをカバーする必要がないことがわかっている場合は、よりクリーンで効率的になります(私の場合のように)。ここで元のメソッド定義を参照して、実装する必要があるすべてを確認できます。次のコードは、問題のほとんどの部分で実行されます。

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
于 2012-09-16T18:12:47.427 に答える