Ruby-on-rails应用程序使用Javascript / coffee访问返回的数据,并在视图中重新显示为下拉列表。
应用/资产/ Javascript角
$('document').ready ->
if $('#x_eval_assum').length == 1
$('#x_eval_assum')
# evaluation assumption is saved
.submit (event) ->
event.preventDefault()
data = $("#x_eval_assum").serialize()
user_save_name = data.user_save_name
drill_id = $('.form.assumption').attr('data-drillid')
$.post "/drills/#{drill_id}/discovery_target_saved.json", data, (res)->
console.log res # response shown below
# line causing errors - how do I access whats in res
for assumption in res.assumptions
# $(select).append(<option val="id"
使用开发者 - &gt;用于查看从控制器
返回到coffeescript的res(例如数据)的工具data: Array[12]
0: Object
id: "c-22"
name: "Gas, ADO"
index: 0
...
1: Object
...
应用程序/控制器/钻
...
def discovery_target_saved
@evaluation_assumption = EvaluationAssumption.new(evaluation_assumption_params)
load_evaluation_assumption_selections
render json: {data: @selections}
end
...
显示发现目标的视图部分
...
<td id="discovery_targets" data-targets="<%= @probability_json %>">
<%= select("name", "id",
@selections.collect {|r| [ r["name"], r["id"] ] },
{ :include_blank => false }) %>
</td>
谢谢 - 皮埃尔
答案 0 :(得分:1)
看看你的控制器:
render json: {data: @selections}
这意味着您将返回一个包含data
键的Hash,其值为某个数组。然后看一下控制台中的内容:
data: Array[12]
0: Object
id: "c-22"
name: "Gas, ADO"
index: 0
...
这意味着res.data
是一个包含12个项目的数组,每个项目都有id
,name
,...属性。这意味着你想要:
for assumption in res.data
...
访问数据。