【发布时间】:2016-05-17 23:51:26
【问题描述】:
我正在尝试进行动态选择,当用户选择学校时只显示属于该学校的组,但是当我尝试更改选择时出现此错误:
缺少带有 {:locale=>[:en], :formats=>[:js, :html], :variants=>[], :handlers=>[:erb, :builder 的部分 admin/groups/_group , :raw, :ruby, :coffee]}。
CoffeeScript
$(document).on "page:change", ->
$(document).on 'change', '#schools_select', (evt) ->
$.ajax 'update_groups',
type: 'GET'
dataType: 'script'
data: {
school_id: $("#schools_select option:selected").val()
}
error: (jqXHR, textStatus, errorThrown) ->
console.log("AJAX Error: #{errorThrown}")
success: (data, textStatus, jqXHR) ->
console.log("Dynamic school select OK!")
HTML
学校属于表单的模型,但组不是表单的属性。
<div class="form-group">
<%= f.label :school %><br>
<%= f.select :school_id, options_for_select(@schools.active.collect { |school|
[school.name.titleize, school.id] }, 1), {}, { id: 'schools_select' } %>
</div>
<div class="form-group">
<%= label_tag :group %><br>
<%= select_tag :group_id, options_for_select(@groups.active.collect { |group|
[group.name.titleize, group.id] }, 1), { id: 'groups_select' } %>
</div>
Javascript
$("#groups_select").empty().append("<%= escape_javascript(render(:partial => @groups)) %>")
红宝石
def update_groups
@groups = Group.where(school_id: params[:school_id])
respond_to do |format|
format.js
end
end
路线
get 'students/update_groups', as: 'update_groups'
【问题讨论】:
-
尝试将
format.js更改为format.json,我想你没有那个_group.html.erb页面。 -
您使用了
respond_to块,但没有告诉它要渲染什么。默认情况下,它将尝试渲染模板文件,这可能是“缺少部分”错误的原因。也许你想在那个 respont_to 块中使用format.json { render json: @groups }? -
@7urkm3n 如果将
format.js更改为format.json现在丢失的文件是其他Missing template admin/students/update_groups, application/update_groups with {:locale=>[:en], :formats=>[:json], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee]}. Searched in:。我添加了 _update_groups.html.erb 和 update_groups.html.erb 仍然无法正常工作。 -
正如@Raffael 建议的那样,我将respond_to
respond_to do |format| format.json { render json: @groups } end更改为解决了丢失的部分错误,但是现在第二个选择在第一个选择更改时没有刷新。 -
检查浏览器的 Javascript 控制台可能会提示您为什么某些东西无法按预期工作。在您的 Ajax 回调处理程序中使用
console.log。请自行研究有关 Javascript 调试的更多信息。
标签: javascript ruby-on-rails coffeescript