我正在尝试使用 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 ) + "." }
这里的问题是 lambda 方法不是#call
在视图中被调用,而是被其他人调用,这意味着它this
不是self
被传递给它的。
this
包含views.commits.message
和path
包含{:rescue_format=>:html}
。Gitorious 团队在整个应用程序中都使用了这种方法,这意味着我不能不花一天的时间就将逻辑转移到辅助方法中。
我做了一些研究,发现这个线程关于确切的行。
这是问题的答案。
这似乎表明您的系统上安装了 i18n gem;此 gem 与 Gitorious 不兼容。用 Rubygems 卸载它应该可以解决这个问题。
我试图卸载i18n
,但运行bundle install
只是再次安装它。
如果不重构 700 行语言环境文件,我应该如何解决这个问题?