如何从ransack属性中获取人名

时间:2015-01-28 11:47:12

标签: ruby-on-rails ransack

我正在使用ransack来构建搜索表单:

<%= search_form_for @q do |f| %>

  <%= f.label :title_or_description_or_request_number_cont %>
  <%= f.search_field :title_or_description_or_request_number_cont %>

  <%= f.submit class: 'btn btn-info' %>
<% end %>

我的模型叫做WorkRequest

此标签显示以下文字:

标题或说明或请求号包含

我希望在找不到任何内容时在页面的输出中使用此文本 - 例如:

无法找到标题或说明或请求编号包含的工作请求...

我希望使用human_attribute_name方法来检索文本,但这两者都是:

WorkRequest.human_attribute_name :title_or_description_or_request_number_cont

WorkRequest.new.human_attribute_name :title_or_description_or_request_number_cont

输出:标题或说明或请求号连续

(结束'cont'而不是'contains')

如果标签没有使用human_attribute_name,它如何构建文本输出,如何构造相同的文本?

我知道我可以简单地用'cont'代替'contains',但我想要一个解决方案来修改文本输出以匹配任何搜索风格的搜索查询(例如以_eq结尾的那些)

1 个答案:

答案 0 :(得分:1)

我想我有一个解决方案:

context = Ransack::Context.for_class WorkRequest
text =    Ransack::Translate.attribute(
           :title_or_description_or_request_number_cont, 
           context: context
          )

输出:

标题或说明或请求号包含