【发布时间】:2019-12-07 22:24:18
【问题描述】:
我第一次尝试在教程中使用 Ajax。目标是输入股票标识符,按下按钮,它会在同一页面上显示有关该股票的信息,而无需重新加载。我没有收到任何错误消息,当我进入控制台时,它会在网络响应下显示带有正确股票信息的部分 HTML 代码,只是没有将其推送到屏幕上。当我单击网络响应时,它给了我一个未知格式错误。
相关代码:
class StocksController < ApplicationController
def search
if params[:stock].present?
@stock = Stock.new_from_lookup(params[:stock])
if @stock
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
部分结果:
<%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%>
结果 JS erb
$('#result').html("<%=j (render 'users/result.html')%>")
网页本身
<h1>My portfolio</h1>
<h3>Search for stocks</h3>
<div id = "stock-lookup">
<%=form_tag search_stocks_path,remote: true,method: :get, id: "stock-lookup-form" do%>
<row>
<div class = "form-group row no-padding text-center col-md-12">
<div class = "col-md-10">
<%=text_field_tag :stock, params[:stock], placeholder: "Stock ticker symbol", autofocus: true, class: "form-control search-box input-lg" %>
</div>
<div class = "col-md-2">
<%=button_tag(type: :submit, class:"btn btn-lg btn-success") do%>
<i class = "fa fa-search"></i> Look Up A Stock
<%end%>
</div>
</div>
</row>
<%end%>
</div>
<div id= "results">
<%=render 'result'%>
</div>
【问题讨论】:
标签: javascript ruby-on-rails ajax ruby-on-rails-6