我正在尝试将高级搜索工具添加到Blacklight安装中,但我知道有关rails的问题很简单。
我被困在一个(迄今为止很棒的)教程中,该教程指出:
Turn this feature on by adding to your CatalogController definition:
self.search_params_logic << :add_advanced_parse_q_to_solr
我可以找到我的CatalogController,但我不知道在哪里放置“&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&quot;:add_advanced_parse_q_to_solr”。
它是顶级类定义的一部分吗?现在它说:
class CataligController < ApplicationController
我是否应该将“&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&quot;:add_advanced_parse_q_to_solr”更换为“&lt; ApplicationController”,或者我应该追加它?
“:”是什么意思,“&lt;&lt;”意思?
如果有人对可以教我这些(我猜)基本语法的教程有任何好的参考,请在这里发布 - 我很想了解我在做什么而不是仅仅复制/粘贴我的方式!
答案 0 :(得分:6)
添加的行应显示在CatalogController
定义中,因此......
class CatalogController < ApplicationController
self.search_params_logic << :add_advanced_parse_q_to_solr
<
操作在第一行显示类继承。
<<
操作意味着将右侧的值作为新元素添加到左侧的数组中。一种等效的方法是使用数组推送方法......
self.search_params_logic.push(:add_advanced_parse_q_to_solr)
这让我们想到了.
意味着什么......它只是意味着你正在调用一个属于对象或对象类的方法。
例如
"Hasse".downcase
=> "hasse"
字符串有一个方法downcase,在上面的行中,你在字符串上调用该方法,结果将被返回。
self.search_params_logic
表示您在self
上调用方法(在这种情况下,self
是CatalogController
,因此您也可以CatalogController.search_params_logic
但是它不是很优雅。)
search_params_logic
返回一个数组,您可以操作数组...例如,添加或删除元素。
答案 1 :(得分:2)
好吧,array << "something"
只是在array
中添加了新元素。 :something
- 是一个符号。在使用Rails之前,您应该学习Ruby语言的基本语法。从官方网站开始:https://www.ruby-lang.org/en/。