【发布时间】:2014-06-11 04:27:06
【问题描述】:
我仍在学习 Rails,并且我有一个包含团队信息的页面,该页面将根据团队的图标单击进行更新,这会触发对控制器的 ajax 调用以填充一些选项卡。
我已经阅读了一些 good info 的内容,了解如何在控制器中使用 format.js 来渲染来自 js.coffee 或 js.erb 文件的部分内容。
我遇到的问题是coffeescript 我认为。现在,我从控制器获取了一些名为 @schedules 的数据,并将其传递给 schedule.js.coffee 文件,应该为返回的每条记录填充一个部分并将其附加到表中。
// schedule.js.coffee
$.each @schedules, (schedule) ->
($ '#schedule_data').append("<%= j render(partial: 'schedules/schedule', locals: { s: schedule }) %>")
这会引发错误
`> undefined local variable or method `schedule' for #<#<Class:0x007fe535cd2900>:0x007fe535d32a30>`
我尝试简化咖啡脚本以仅记录输出:
$.each @schedules, (schedule) ->
console.log(schedule)
但这不会打印任何内容。
我错过了什么吗?我对咖啡脚本非常缺乏经验,但似乎我应该得到一些数据——我验证了这个团队项目的日程安排项目确实存在。
【问题讨论】:
-
请发布您的相关控制器代码和部分文件。
-
我不认为你打算在咖啡脚本中使用 rails 变量,所以 $.each @schedules 对我来说似乎是错误的......
-
尝试一个简单的 console.log 或一条警告语句,在你的咖啡文件中没有任何循环
-
我认为@RubyRacer 是对的,您正在将您的coffeescript 与您调用
$.each的红宝石混合...如果您这样做$.each <%= j @schedules %>, (schedule) ->等会怎样?我怀疑它会做你想要的,但你应该得到一些东西......
标签: ruby-on-rails ajax ruby-on-rails-4 coffeescript