【发布时间】:2019-04-30 15:57:41
【问题描述】:
我是 Rails 和 Spree 的新手。我正在调查一个使用 Spree 的 Rails 项目。我遇到了这个
Spree.t(:num_orders)
但找不到它的实际作用。 请帮忙?
【问题讨论】:
标签: ruby-on-rails spree
我是 Rails 和 Spree 的新手。我正在调查一个使用 Spree 的 Rails 项目。我遇到了这个
Spree.t(:num_orders)
但找不到它的实际作用。 请帮忙?
【问题讨论】:
标签: ruby-on-rails spree
大约是 I18n。看到这个guide
【讨论】:
您在工具箱中找到的第一个工具并不是很有帮助。例如,在 Spree 存储库中使用 ripgrep:
git clone https://github.com/spree/spree.git
cd spree
rg "def t\b"
# no results ...
您可以尝试搜索alias和alias_method;但是,缩小搜索结果的范围很烦人,因为该方法只有一个字符。
最好使用更高级的调试技术。请参阅 Aaron Patterson 的指南:I am a puts debuggerer
rails 控制台中的示例:
[2] pry(main)> Spree.method(:t).source_location
=> ["/bundle/ruby/2.7.0/gems/spree_core-4.1.8/lib/spree/i18n.rb", 12]
所以,Spree.t 是 Spree.translate 的别名,它继承自 ActionView::Helpers::TranslationHelper
您可以在此处找到文档和来源:
因此,Spree 只是为 Rails 的内置 translate 方法添加了一些增强功能,如果您查看 API 文档,该方法也有别名“t”。
【讨论】: