几天以来一直在这个问题上停留,并且已经提出了一个关于它的问题。
我有一个显示石油/天然气钻探数据的应用程序,用户可以在其中输入他们认为钻探可能发现的不同估计值。应用程序正确计算计算输入的任何变化的结果。但是,结果不显示在部分结果的屏幕上。这是我要修复的错误。
使用 google chrome 开发人员工具,我可以看到计算结果,并且文件 Drills.js.coffee 中的“console.log 数据”行在控制台和这些对象上生成 JSON 响应 [Object, Object, Object](是正确的术语)存在并包含适当的数据。
我已经从模块中添加了相关的代码。见下文:Controller - App/Assets/Javascript - 2 Views - 并在视图文件 view/projection.js.erb 文件中(见底部)
我已经尝试/正在尝试各种方法来尝试显示结果。这些包括
任何帮助都会很棒,包括指出我正在尝试做的没有意义的事情。
(1) 尝试在 app/assts/Javascript Drills.js.erb 中这样做。这是我尝试让部分重新显示的行,其中填充了来自控制器演习动作投影的正确值
$('#id_evaluation_results').html("<%= j render(:partial => '/evaluation_results') %>")
不渲染部分并导致文本“ <%= escape_javascript render(:partial => '/evaluation_results') %> ”显示在屏幕上。将双引号 " 更改为单引号 ' 会导致错误 SyntaxError: unexpected COMPOUND_ASSIGN (in /Volumes/F Drive/drill_investor/app/assets/javascripts/drills.js.coffee) 添加该行
(2)我创建了一个文件views/drills/projection.js.erb
$('#id_evaluation_results').html('<%= escape_javascript(render :partial => "drills/evaluation_results") %></div>');
我不相信这个文件被评估为故意错误似乎不会导致任何问题
谢谢 - 皮埃尔
下面的代码
Drills_controller
class DrillsController < ApplicationController
before_filter :load_drill, except: [:index, :new, :create]
def investor
end
def projection
result_list = Evaluation.generate_projection(@drill.drill_interests, assumption_params)
@result_list= result_list # this line probably not necessary
render json: result_list
结尾
应用程序/资产/Javascript/drills.js.coffee
loadAssumptionChange = (drill_id)->
data = $('#evaluation_assumption_params').serialize()
console.log data
$.ajax
# event.preventDefault()
url:"/drills/#{drill_id}/projection.json"
type:"post"
dataType: 'json' # data type of response
data: data
success: (data,success,xhr)->
console.log("print data")
console.log data
$('#id_evaluation_results').html("<%= j render(:partial => '/evaluation_results') %>")
# this line not working
views/drills/investor.html.erb - 这是包含部分评估结果的主屏幕
<% content_for :title, "Drill Investor - Valuations" %>
<div class="form assumption" data-drillid="<%= @drill.id %>">
<%= render 'assumption_params' %>
</div>
<div class="form">
<div id="id_evaluation_results">
<%= render 'evaluation_results' %>
</div>
</div>
</article>
</section>
意见/演习/evaluation_results.html.erb
<%= simple_form_for :result_list, :html => { class: 'infogroup', id: "evaluation_results",
:method => :post }, remote: true do |f| %>
<%= content_tag :header, "Results", class: 'infogroup-header'%>
...
<th>Discovery Value</th>
<th>DV/Share</th>
<th>Leverage</th>
<th>Risked Lev </th>
<th>Leverage with CFD's</th>
</tr>
<% if @result_list.present? %>
<% @result_list.each do |result| %>
....
<td><%= result.listing_name %></td>
<td><%= number_to_currency(result.listing.share_price_dollars,
:precision => 3, :delimiter => ',') %></td>
<td><%= number_to_currency(result.market_capitalisation / 1000000,
:precision => 0, :delimiter => ',') %>M</td>
意见/演习/projection.js.erb。此文件命名为与控制器中应触发它的操作相匹配
$('#id_evaluation_results').html('<%= escape_javascript(render :partial => "drills/evaluation_results") %></div>');