Javascript Rails Ajax/Controller未正确更新我的部分
我正在学习一个教程,让rails部分使用ajax显示股票信息。一切都正常工作,在控制台中,我可以看到div已正确更新,但没有显示出来。这是相关代码 控制器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
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标记