Ruby on rails 使用jqueryajax呈现一个全新的部分

Ruby on rails 使用jqueryajax呈现一个全新的部分,ruby-on-rails,ajax,ruby-on-rails-3,jquery,Ruby On Rails,Ajax,Ruby On Rails 3,Jquery,我试图编写一个AJAX调用,当从下拉列表中选择某个特定项时,该调用将呈现一个新的分部。我整天都在寻找解决方案,但运气不佳: 我让它工作的唯一方法不是使用AJAX,而是使用一个隐藏的div来包含我的第二个部分,然后在从下拉框中选择适当的选项时显示它并隐藏另一个div。是的,这很有效,但我正在寻找一种更清洁的解决方案 我不是在寻找一个直接的答案,但是如果任何人有任何资源可以为我指出正确的方向,我将不胜感激:添加一个控制器操作来渲染视图,这样它的视图就可以渲染部分,然后使用jquery来放置它怎么样:

我试图编写一个AJAX调用,当从下拉列表中选择某个特定项时,该调用将呈现一个新的分部。我整天都在寻找解决方案,但运气不佳:

我让它工作的唯一方法不是使用AJAX,而是使用一个隐藏的div来包含我的第二个部分,然后在从下拉框中选择适当的选项时显示它并隐藏另一个div。是的,这很有效,但我正在寻找一种更清洁的解决方案


我不是在寻找一个直接的答案,但是如果任何人有任何资源可以为我指出正确的方向,我将不胜感激:

添加一个控制器操作来渲染视图,这样它的视图就可以渲染部分,然后使用jquery来放置它怎么样:

$('#id-of-box').load("<%= some_action_path %>")

当select元素的onchange事件被触发时,您应该执行远程AJAX调用,因此在包含select元素的页面上,脚本中应该有如下内容:

$('#select_id').live('change',function(){
  $.ajax({
    url: 'url_bound_to_partial_renderer'
  });
}
对于响应url\u to\u fetch\u结果的控制器的操作,您应该这样写:

# controller
# action bound to 'url_bound_to_partial_renderer' by routes.rb
def partial_renderer
   ...
end

#view (partial) _partial_renderer.js.erb
$('jquery_selector_path_to_container_element_of_your_partial').html("<%= escape_javascript render(:partial => 'my_partial') %>");

#view (partial) to be rendered inside container element: _my_partial.html.erb
<p>Here goes the content of the partial you want to be rendered on the container!</p>

希望这能回答您的问题。

如果您能提供您编写的相关代码,那就太好了。