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 行のロケール ファイルをリファクタリングせずに、この問題を解決するにはどうすればよいですか?