Rails新手:“<<”是什么意思?

Rails newbie: What does "<<" mean?

我正在尝试为 Blacklight 安装添加高级搜索工具,但我对 rails 了解甚少。

我被困在一个(到目前为止很棒的)教程中,该教程指出:

Turn this feature on by adding to your CatalogController definition:
self.search_params_logic << :add_advanced_parse_q_to_solr

我可以找到我的 CatalogController,但我不知道该把“<< :add_advanced_parse_q_to_solr”放在哪里。

它是顶部 class 定义的一部分吗?现在它说:

class CataligController < ApplicationController

我应该将“

“:”是什么意思,“<<”是什么意思?

如果有人对可以教我这些(我猜)基本语法的教程有任何好的参考,请在此处 post - 我很想了解我在做什么,而不仅仅是 copy/pasting 我我路过!

嗯,array << "something" 只是在 array 中添加新元素。而 :something - 是一个符号。在使用 Rails 之前,您应该学习 Ruby 语言的基本语法。从官网开始:https://www.ruby-lang.org/en/.

添加的行应该出现在您的 CatalogController 定义中,所以...

class CatalogController < ApplicationController
  self.search_params_logic << :add_advanced_parse_q_to_solr

<操作在第一行显示class继承。 << 操作表示将右边的值作为新元素添加到左边的数组中。等效的方法是使用数组推送方法...

self.search_params_logic.push(:add_advanced_parse_q_to_solr)

这让我们想到 . 是什么意思的问题......它只是意味着你正在调用一个方法,该方法是对象或对象的 class.

的一部分

例如

"Hasse".downcase
=> "hasse"

字符串有一个小写的方法,在上面的行中,您在字符串上调用该方法,结果将被返回。

self.search_params_logic 意味着你在 self 上调用一个方法(在这种情况下,selfCatalogController 所以你也可以做 CatalogController.search_params_logic 但不是很优雅)。

search_params_logic returns 一个数组,您可以操作该数组...例如添加或删除元素。