Rails 3 を使用して Gitorious を起動して実行しようとしていますが、問題が発生しました。
ビューにこの行があります。
<p><%= t("views.commits.message").call(self, tree_path(@commit.id)) %></p>
対応するロケール行は次のようになります [ config/locales/en.rb
]
:message => lambda { |this, path| "This is the initial commit in this repository, " +
this.link_to( "browse the initial tree state", path ) + "." }
ここでの問題は、ラムダ メソッドが#call
ビューで使用して呼び出されていないことです。他の誰かによって呼び出されています。つまり、それが渡されているthis
わけではありません。self
this
を含むviews.commits.message
およびpath
含む{:rescue_format=>:html}
。Gitorious チームは、アプリケーション全体でこのアプローチを使用しています。つまり、フォーム作業に 1 日もかからずにロジックをヘルパー メソッドに移動することはできません。
私はいくつかの調査を行い、正確な行に関するこのスレッドを見つけました。
これが問題の答えでした。
これは、システムに i18n gem がインストールされていることを示しているようです。この gem は Gitorious と互換性がありません。Rubygems でアンインストールすると、問題が解決するはずです。
をアンインストールしようとしましi18n
たが、実行bundle install
すると再度インストールされます。
700 行のロケール ファイルをリファクタリングせずに、この問題を解決するにはどうすればよいですか?