= search_form_for @q, :url => search_offers_path, :html => { :method => :post } do |f|
= f.condition_fields do |c|
.field
= f.attribute_fields do |a|
= a.attribute_select
= f.predicate_select
= f.value_fields do |v|
= v.text_field :value
= link_to "#{t :destroy}", '#', class: "remove_fields"
= link_to_add_fields "#{t :add}", f, :condition
.field
= t :sort
= f.sort_fields do |s|
= s.sort_select
= f.submit "#{t :search}"
내 컨트롤러. 술어 레이블을 변경하려면 i18n을 사용했습니다. 속성의 이름을 변경할 수있는 가능성도있다
en.yml
ransack:
asc: "ascending"
desc: "descending"
predicates:
cont: "contains"
not_cont: "not contains"
start: "starts with"
end: "ends with"
gt: "greater than"
lt: "less than"
...
는
attributes:
model_name:
model_field1: "field name1"
model_field2: "field name2"
...
검색 대신 내가에
= f.attribute_fields do |a|
= a.attribute_select
= f.select :p, { 'custom predicate name1' => :predicate1, 'custom predicate name2' => :predicate2 }
을 사용
= f.predicate_select
의 술어를 제한하기 위해 필드 제한 표 검색 fi 전용 옵션 :
<%= f.predicate_select only: [:cont, :not_cont, :eq, :not_eq, :blank, :null, :not_null] %>
불행하게도 전달 된 배열의 요소 순서가 아무튼 필드들 본인은 predicate_select 형태 도우미의 조건은 당신이로 배열을 전달할 수 있습니다 한계에
UNRANSACKABLE_ATTRIBUTES = ["id", "published", "created_at"]
def self.ransackable_attributes auth_object = nil
(column_names - UNRANSACKABLE_ATTRIBUTES) + _ransackers.keys
end
환상적인 질문과 답변, 그것에 대한 칭찬은 최근에 Ransack에 깊이 파고 들었 기 때문에 내 질문을 살펴보실 수 있겠습니까? http://stackoverflow.com/questions/13241481/in-form-sorting -using-ransack-gem-not-working 정말 도움이 될 수 있습니다. 정말 고생했습니다! 감사합니다 – jlstr
안녕하세요, 다시 당신을 괴롭히는 죄송합니다, UNRANSACKABLE_ATTRIBUTES 배열의 특정 방법을 제외하는 방법이 있다면 아시나요? 예를 들어, 관계로 만든 메소드를 제외하고 싶습니다. 제 경우에는 제품이 제품 유형에 속하며 제품 유형은 드롭 다운을 표시합니다. 그것을 제거하는 방법이 있습니까? 미리 감사드립니다! – jlstr
여기에서 모든 술어를 확인할 수 있습니다 (https://github.com/activerecord-hackery/ransack/blob/master/lib/ransack/constants).rb –