Javascript Rails Ajax/Controller未正确更新我的部分

Javascript Rails Ajax/Controller未正确更新我的部分,javascript,ruby-on-rails,ajax,ruby-on-rails-6,Javascript,Ruby On Rails,Ajax,Ruby On Rails 6,我正在学习一个教程,让rails部分使用ajax显示股票信息。一切都正常工作,在控制台中,我可以看到div已正确更新,但没有显示出来。这是相关代码 控制器 class StocksController < ApplicationController def search if params[:stock].present? @stock = Stock.new_from_lookup(params[:stock]) if @stock

我正在学习一个教程,让rails部分使用ajax显示股票信息。一切都正常工作,在控制台中,我可以看到div已正确更新,但没有显示出来。这是相关代码

控制器

class StocksController < ApplicationController 
   def search
      if params[:stock].present?
         @stock = Stock.new_from_lookup(params[:stock])
         if @stock 
            puts "should be working"
            respond_to do |format|
            format.js { render partial: 'users/result' }            
            end

         else
            puts "incorrect symbol"
            flash[:danger] = "You have entered an incorrect symbol."
            redirect_to my_portfolio_path
         end

      else
         puts "nothing"
         flash[:danger] = "You need to type something, what did you expect to happen?"
         redirect_to my_portfolio_path
      end
   end
end
class StocksController
AJAX JS ERB

$('#results").html("<%=j (render 'users/result.html')%>")
$(“#结果”).html(“”)
部分测试的结果是

<%if @stock%>
    <div class = "well results-block">
        <strong>Symbol:</strong><%= @stock.ticker%>
        <strong>Name:</strong><%= @stock.name%>
        <strong>Last Price:</strong><%= @stock.last_price%>
    </div>
<%end%>

符号:
名称:
最新价格:
如果您需要更多信息,请告诉我。我正在使用Rails 6。

您可能需要检查。您应该尝试删除“部分”或添加“局部”或“对象”以渲染方法

以下所有呈现调用都将呈现views/books目录中的edit.html.erb模板:

渲染:编辑
渲染操作::编辑
渲染“编辑”
渲染操作:“编辑”
呈现“书籍/编辑”
渲染模板:“书籍/编辑”
可以通过:object选项将对象传递到此局部变量:


就你而言

format.js{render'users/result'}
而不是使用

$('#results").html("<%=j (render 'users/result.html')%>")
$(“#结果”).html(“”)
你有没有试着使用

document.querySelector('#results').innerHTML = '<%= j render 'users/result.html' %>'

document.querySelector('#results')。innerHTML=''

这对我来说很好。

users/result.html的内容是什么?我将其保存在编辑中供您使用!我应该把倒数第二行放在哪里?另外,当我进去预览它时,我可以看到:$(“#results”).html(“\nSymbol:GOOG\nName:Alphabet,Inc.\n最新价格:1340.74\n\n”)让我知道它正在获取信息,只是没有实际刷新部分打开web inspector。在控制台选项卡中运行结果代码,查看它是否有效。它在结果选项卡中显示部分的html代码,其中包含正确的信息…它只是没有实际将该部分推到屏幕上。如果您确定您已获得为部分添加html代码,确保页面(调用搜索操作)有一个带有
id=results
(最常见的
div
)的html标记