作为Ruby on Rails的总菜单,我希望,这是一个相当简单的问题。
我正在使用Ransack gem为我网站的搜索栏提供支持,并且有很多很棒的方法。其中一个是sort_link方法,它通过单击元素使我的结果表可以排序。
唯一的问题是,当它排序时,它会在列标题名称之后注入 ▼
(或 ▲
)。
我要做的就是将此输出编辑为<span>▲</span>
或<span>▼</span>
。在到处寻找甚至在#rubyonrails IRC中询问问题后,我似乎找不到自定义此输出的方法。
作为一个权宜之计,我已经编写了一些javascript来直接操作DOM,但它只是一种肮脏的方法,特别是在自定义网站中!
这里的任何帮助都很棒。
谢谢!
答案 0 :(得分:1)
这里他们在Ransack gem source on GitHub
# lib/ransack/constants.rb:5-6
module Ransack
module Constants
ASC = 'asc'.freeze
DESC = 'desc'.freeze
ASC_ARROW = '▲'.freeze # <- ascending arrow
DESC_ARROW = '▼'.freeze # <- descending arrow
# ..snipped..
要切换箭头指示,请将文件复制到您的应用程序中:/lib/ransack/constants.rb
并交换两个HTML实体(或只是交换ASC_ARROW
和DESC_ARROW
)。
修改强>
要添加span标记并删除不间断空格,我们将修改处理这两者的辅助方法。
在this file中,我们将采用此辅助方法
# lib/ransack/helpers/form_helper.rb:143
def link_name(label_text, dir)
[ERB::Util.h(label_text), order_indicator_for(dir)]
.compact
.join(Ransack::Constants::NON_BREAKING_SPACE)
.html_safe
end
并将其修改为:
span
标记nbsp;
将raw file复制到您的应用程序(到 /lib/ransack/helpers/form_helper.rb )并将此方法更改为:
# lib/ransack/helpers/form_helper.rb:143
def link_name(label_text, dir)
[ERB::Util.h(label_text), content_tag(:span, order_indicator_for(dir))]
.compact
.html_safe
end