Эта часть приложения связана с процессом оценки для ставок для RFP.Rails: form's f.select не возвращает grand-owned_to w/default
В основном категория (например, стоимость, профиль компании, - и многие другие)
имеет много TestCriteria. (Например: Сравнение цен, конкурентоспособность Daily Rate ...)
TestCriterium может иметь три GradingScores {терпят неудачу, отвечают, и превосходящие} (с #s и Descr)
Подключение все это вместе, Сорт связан с TestCriteria, которому мы назначаем GradingScale.
Я бы хотел «перенести» принадлежащую им категорию.
При входе в новый класс я сохранил category_id, его второй дед и бабушку, если можно так выразиться.
В _form Grade по возвращению в ПРАВКА,
мне нужно Категория ниспадающего меню с выбранным по умолчанию является @ grade.category_id Есть два уровня этого.
Простой корпус, как показано здесь, а затем см. Ниже.
Моя последняя попытка включала:
В контроллере Grade в
@categories = Category.where(:id => @grade.category_id)
и _form
<% f.select :category_id, options_from_collection_for_select(@categories.sort_by
{ |cats| cats.category_name}, "id", "category_name",
:selected => @grade.category_id) %>
Я также попытался простой категорию. найти() w/параметры в _form.
Если я смогу получить помощь в этом, я могу пойти длинными способами в других вопросах.
== ТЕПЕРЬ НЕОЧЕВИДНЫЙ версия ==
Это все предварительные за то, что мне действительно нужно.
Я использую сценарий jQuery ajax, чтобы сделать начальную новую запись категории & TestCriterium & Оценка.
Категория ограничивает соответствующий список тестов,
и Test ограничивает соответствующий список параметров класса.
Вот форма для классов, которые я использую, чтобы получить эту серию полей:
<div class="field">
<%= label_tag 'Evaluation Category' %><br/>
<div id="grade_picker_div" >
<%= collection_select(:category, :category_id, Category.find(:all, :order => "id"),
:id, :category_name,{:include_blank => true}) %><br/>
<div id="tests_div"></div><br/>
<div id="grades_div"></div><br/>
</div>
</div>
И Аякс:
$ ->
$('#grade_picker_div #category_category_id').change ->
#selected = $(this).attr 'value'
selected = $(':selected', this)[0].value
$.ajax '/categories/' + selected,
type: 'get'
dataType: 'json'
error: (jqXHR, textStatus, errorThrown) ->
alert 'stop' + textStatus
success: (data, textStatus, errorThrown) ->
select_html = '<br><b>Test Criteria</b><br/> <select id="grade_test_criterium_id" name="grade[test_criterium_id]"><option></option>'
for test_criterium in data.test_criteria
select_html += '<option value="' + test_criterium.id + '">' + test_criterium.criteria + '</option>'
select_html += '</select>'
$('#grade_picker_div #test_criteria_div').html(select_html)
$('#grade_picker_div #grading_scales_div').html('')
return false
$(document).on 'change', '#grade_picker_div #test_criteria_div', ->
selected = $(':selected', this)[0].value
#alert selected
$.ajax '/test_criteria/' + selected,
type: 'get'
dataType: 'json'
error: (jqXHR, textStatus, errorThrown) ->
#alert 'stop' textStatus
success: (data, textStatus, errorThrown) ->
select_html = '<b>Grade</b><br/> <select id="grade_grading_scale_id" name="grade[grading_scale_id]"><option></option>'
for grading_scale in data.grading_scales
select_html += '<option value="' + grading_scale.id + '">' + grading_scale.name + " : " + grading_scale.description + '</option>'
select_html += '</select>'
$('#grade_picker_div #grading_scales_div').html(select_html)
return false
Я сделал некоторую резку и склейку, но выше код работает.
После того как я узнать, как сделать простую предварительную нагрузку раскрывающегося списка, (верхняя часть этого Q)
как ты предлагаешь IF/THEN мой путь, чтобы сделать эту работу на EDIT против того, что работает здесь для NEW?
Спасибо!