AJAX调用重新渲染部分

时间:2014-03-05 00:48:11

标签: ruby-on-rails ajax

我知道已经有很多问题已经回答了,但我正在做他们在这些帖子中说的所有内容,而且它仍然没有用。

需要注意的一点是,它在某一点上工作,但现在已经不再有效了。我可以发誓我没有改变任何东西,但也许我做了。

我有一个页面上有一堆部分内容(对不起,一切都是haml):

%h4 Query Editor

.row-fluid
    .span9
        = render 'query_editor'

    .span3
        = render 'documentation'

= image_tag "spinnerLarge.gif", size: "20x20", class: 'loading-indicator'
%span{ id: "results" }
    = render 'results'

我要做的是重新渲染结果。

表单只在其中一个中(以haml为单位):

= form_tag 'query', remote: true, class: "form-horizontal" do 

  = text_area_tag :query_editor, @current_connector.editor_state, rows: 10, class: 'input-block-level' 
  = text_area_tag :selected_query, nil, style: 'display:none'

现在我有一些javascript,如果按Cmd + Enter,它会在text_area中运行查询:

$(document).ready ->

  $('#query_editor').keydown (event) -> 
    if ((event.which == 115 && event.ctrlKey) || (event.which == 13 && event.metaKey)) 
      $('#selected_query').val($('#query_editor').getSelectedText())
      $('#results').prepend('Getting results...')      
      $(this).parent('form').submit()
      event.preventDefault()

在我的控制器中,我有我的代码来执行查询(我知道工作正常b / c我看到刷新页面时结果会回来),但结果部分不会自动刷新。

query_tool_controller.rb:

def query

    # run the query and get some results and store in @results variable

    respond_to do |format|
      format.html { render action: 'view' }
      format.js { render layout: false }
      format.json { render json: @results, status: :success }
    end

  end

这是我的query.js.erb $('#results').html("<%= j render(partial: 'results').html_safe %>");

我正在使用rails 3.2.13并且我已经包含javascript_include_tag "application"。我的application.js中还有以下几行:

//= require jquery
//= require jquery_ujs

有什么想法吗?


我也尝试用以下代码替换query.js.erb: alert("hello, world");

警报没有弹出,所以它没有调用我的query.js.erb文件。我想问题是我做错了什么导致它不能运行?

0 个答案:

没有答案