この問題に何日も立ち往生しており、それに関してすでに1つの質問をしました。
私は、石油/ガス掘削のデータを表示するアプリケーションを持っています。このアプリケーションでは、掘削で発見されると思われるもののさまざまな見積もりをユーザーが入力できます。アプリケーションは、計算入力の変更に対して結果を正しく計算します。ただし、結果の一部が画面に表示されません。これは私が修正しようとしているエラーです。
Google Chrome 開発者ツールを使用すると、結果が計算され、ファイル drills.js.coffee の「console.log data」行が、コンソールとこれらのオブジェクトで JSON 応答 [オブジェクト、オブジェクト、オブジェクト] を生成することがわかります (つまり、正しい用語)が存在し、適切なデータが含まれています。
モジュールから関連するコードを追加しました。以下を参照してください: 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 (/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>');