首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过JavaScript函数调用时未呈现Rails部分

通过JavaScript函数调用时未呈现Rails部分
EN

Stack Overflow用户
提问于 2018-07-07 04:19:46
回答 1查看 39关注 0票数 0

我正在尝试在下拉列表中更改时呈现部分。有一个onchange javascript函数,它指向一个链接来显示相应的表单。

但是在这里,我在控制器中的get_template方法中得到了一个#<ActionController::UnknownFormat: ActionController::UnknownFormat>错误。

我认为这与通过javascript调用链接有关,因为请求是作为HTML处理的。

代码语言:javascript
复制
Processing by XYZController#get_template as HTML

如何将其作为JS处理?

下面是详细的代码。

dropdown.html.erb

代码语言:javascript
复制
<div id="requests_dropdown">
Choose the type of request : <%= select_tag 'drop_request_id', options_for_select(@request_types.map{|x| [x[:name], x[:id]] } ) %>
</div>

Javascript

代码语言:javascript
复制
<script>

$('#drop_request_id').on('change', function() { 
  var request_type_id = $('#drop_request_id').val();
  var href =  'get_template/' + request_type_id ;
  window.location = href;
});
</script>

控制器

代码语言:javascript
复制
   def get_template

    @request_type = [x,y,z] 
    respond_to do |format|
            format.js
    end
end

get_template.js.erb

代码语言:javascript
复制
$("#request_form_partial").html("<%= escape_javascript(render partial: 'request_form', locals: {  request_type: @request_type } ) %>"); 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-07 04:33:31

您需要通过ajax调用您的方法。你得到了错误,因为你试图获得html格式,而你的方法呈现的是js格式的响应。

请将您的代码编辑为:

代码语言:javascript
复制
     <script> $('#drop_request_id').on('change', function() { 
var request_type_id = $('#drop_request_id').val(); 
var href = 'get_template.js/' + request_type_id ; 
$.get(href);
}); 
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51217107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档