2015-05-01 2 views
0

На данный момент у меня есть единицы и категории в виде таблиц. Категории имеют имя, год, unit_id и exam_board_id. У единиц есть только имя.Создать флажки только из определенных объектов

(Категории относятся к единицам измерения).

Я пытаюсь создать флажок единиц, которые имеют определенную Category.Year и category.exam_board_id

На данный момент я попытался создать два метода, чтобы попытаться забрать эти блоки, как это:

def ocr_as_units(unit) 
    unit.categories.each do |category| 
     if category.year = "AS" && category.exam_board_id == 1 
     return true 
     end 
    end 
    end 

    def display_ocr_as_units(unit) 
    # ocr_as_units = [] 
    if ocr_as_units(unit) == true 
     # ocr_as_units << unit 
     return unit.name 
    end 
    end 

И в форме, где я хочу, чтобы создать флажки у меня есть следующий код (в Haml):

- Unit.all.each do |unit| 
    = display_ocr_as_units(unit) 
    .category-label 
    = label_tag dom_id(unit), unit.name 
    = check_box_tag "test[unit_ids][]", unit.id, @test.unit_ids.include?(unit.id), id:dom_id(unit) 

до сих пор все это делает правильно ди разбить единицы, которые являются AS и OCR, но затем под ними создаются флажки для всех блоков. Есть ли способ взять единицы, которые возвращаются с помощью метода display_ocr_as_units(unit), и использовать их для создания флажков?

Благодаря

+1

Есть несколько проблем с вашим кодом (я понимаю, Ruby - это не ваш основной язык?). Взгляните на этот http://ruby-doc.org/core-2.2.0/Array.html#method-i-select –

ответ

0

Это может помочь:

Category.Year = "AS" & & category.exam_board_id == 1 должен быть Category.Year == "AS" & & category.exam_board_id == 1, тогда он работает корреляцией. Beacuse category.year = "AS" присваивает год категоризации "AS" и всегда возвращает true

Смежные вопросы