Ruby on rails 轨道:表格';s f.选择不将grand-U返回到默认值
申请的这一部分与RFP投标的评级过程有关 基本上是一个类别(例如:成本、公司简介等)Ruby on rails 轨道:表格';s f.选择不将grand-U返回到默认值,ruby-on-rails,select,belongs-to,Ruby On Rails,Select,Belongs To,申请的这一部分与RFP投标的评级过程有关 基本上是一个类别(例如:成本、公司简介等) 有许多测试标准。(例如:价格比较、日费率竞争力…) 一个测试标准可以有三个评分{失败、满足和超过}(带有#s和descr) 将所有这些联系在一起,一个等级与一个测试标准相关联,我们为该标准分配了一个分级比例。 我想“结转”所属类别 在进入一个新年级时,我储存了category_id,可以说是它的第二位祖父母 在返回编辑时的成绩表中 我需要一个类别下拉列表,所选默认值为@grade.Category\u id
有许多测试标准。(例如:价格比较、日费率竞争力…) 一个测试标准可以有三个评分{失败、满足和超过}(带有#s和descr) 将所有这些联系在一起,一个等级与一个测试标准相关联,我们为该标准分配了一个分级比例。
我想“结转”所属类别
在进入一个新年级时,我储存了category_id,可以说是它的第二位祖父母 在返回编辑时的成绩表中 我需要一个类别下拉列表,所选默认值为@grade.Category\u id 这有两个层次。
下面是一个简单的例子,如下所示
我最近的尝试包括: 在年级控制器中
@categories = Category.where(:id => @grade.category_id)
并且以"u"的形式,
<% f.select :category_id, options_from_collection_for_select(@categories.sort_by
{ |cats| cats.category_name}, "id", "category_name",
:selected => @grade.category_id ) %>
@grade.category\u id)%%>
我还尝试了一个简单的Category.find()方法,其中包含参数。\u形式。如果我能在这方面得到帮助,我可以在其他事情上走很长的路 ==现在是棘手的版本== 这些都是我真正需要的初步准备 我正在使用jqueryajax脚本来完成Category&TestCriterium&Grade的初始新条目 类别限制了适当的测试列表,
测试限制了适当的等级选项列表 这是我用来获取这一系列字段的分数表:
<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>
“身份证”),
:id,:category_name,{:include_blank=>true})%>
还有ajax:
$ ->
$('#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
$->
$(“#等级#挑选者(部门#类别)类别(id)”)。更改->
#所选=$(此).attr“值”
选定项=$(':selected',此)[0]。值
$.ajax'/categories/'+已选定,
键入:“获取”
数据类型:“json”
错误:(jqXHR,textStatus,errorshown)->
警报“停止”+文本状态
成功:(数据、文本状态、错误抛出)->
选择“html=”
测试标准
”
用于数据中的测试标准。测试标准
选择\u html+=''+测试\u criteriam.criteria+''
选择_html+=''
$(“#等级"选取者"分区#测试"标准"分区“).html(选择"html)
$('grade#picker_div#grading_scales_div')。html('')
返回错误
$(文档)。关于“更改”,请参见“#等级"选取者"分区#测试"标准"分区”——>
选定项=$(':selected',此)[0]。值
#所选警报
$.ajax'/test_criteria/'+已选定,
键入:“获取”
数据类型:“json”
错误:(jqXHR,textStatus,errorshown)->
#警报“停止”文本状态
成功:(数据、文本状态、错误抛出)->
选择_html='Grade
'
用于数据中的放坡比例。放坡比例
选择“+html+=”+“放坡”\u scale.name+”:“+grading\u scale.description+”
选择_html+=''
$(“#坡度"选取者"分区#坡度"刻度"分区“).html(选择"html)
返回错误
我已经做了一些剪切和粘贴,但上面的代码是有效的
在我学习了如何进行下拉列表的简单预加载后,(此Q的顶部)你如何建议我,如果/然后我的方式,使这项工作的编辑与什么工作在这里的新
谢谢 您使用的是
select
,因此不应将options\u from\u collection\u用于为选项列表创建html字符串的\u select
<代码>选择为您执行此操作。尝试将其更改为collection\u select
<%= f.collection_select :category_id, @categories.sort_by(&:category_name), :id, :category_name, { selected: @grade.category_id } %>
如果f.object
等于@grade
,则无需通过所选的选项