我在哪里可以找到Spree.t方法定义或文档

时间:2019-04-30 15:57:41

标签: ruby-on-rails spree

我是Rails和Spree的新手。我正在调查一个使用Spree的Rails项目。我碰到了这个

{
  "entry": {
    "main": [
      "./scripts/main.js",
      "./styles/main.scss"
    ],
    "customizer": [
      "./scripts/customizer.js"
    ]
  },
  "publicPath": "/wp-content/themes/my-theme",
  "devUrl": "http://test.local",
  "proxyUrl": "http://localhost:3000",
  "cacheBusting": "[name]_[hash:8]",
  "watch": [
    "app/**/*.php",
    "config/**/*.php",
    "resources/views/**/*.php"
  ]
}

但是无法找到它的实际作用。 请帮忙吗?

2 个答案:

答案 0 :(得分:1)

大约是I18n。看到这个guide

答案 1 :(得分:0)

您在工具箱中使用的第一个工具并不是很有帮助。例如,在 Spree 存储库中使用 ripgrep

git clone https://github.com/spree/spree.git
cd spree

rg "def t\b"
# no results ...

您可以尝试搜索aliasalias_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]

打开此文件并查看第 12 行enter image description here

因此,Spree.tSpree.translate 的别名,它继承自 ActionView::Helpers::TranslationHelper

您可以在此处找到文档和来源:

因此,Spree 只是对 Rails 的内置 translate 方法添加了一些增强功能,如果您查看 API 文档,该方法还有一个别名“t”。