【问题标题】:inject values into javascript using haml on ruby on rails在 ruby​​ on rails 中使用 haml 将值注入 javascript
【发布时间】:2014-09-08 08:32:01
【问题描述】:

我有以下循环

:javascript
$(document).ready(function() {
    $('#calendar').fullCalendar({
      defaultDate: '2014-09-12',
      editable: false,
      eventLimit: true, 
      events: [
        {
          - @kid.availabilities.order("availability_date desc").each do |availability|
            title: "#{@kid.name}",
            start: "#{availability.availability_date.to_datetime}"
        }        
      ]
    });
  });

但在行中

start: "#{availability.availability_date.to_datetime}"

我总是得到

NameError at /profile/jean_oso
undefined local variable or method `availability' for #<#<Class:0x007f9210786578>:0x007f92107cf750>

如何在我的 javascript 中注入此值。

提前致谢。

更新


我检查了我的开发者工具,发现

- @kid.availabilities.order("availability_date desc").each do |availability|

正在打印为文本,所以当我尝试这样做时:

start: "#{availability.availability_date.to_datetime}"

可用性变量不存在。

我做错了什么????

感谢您的帮助

更新 2


我讨厌haml,我不会在我的下一个项目中再次使用它。这就是我解决问题的方法。

%script(type="text/javascript")
  $(document).ready(function(){
  $('#calendar').fullCalendar({
  defaultView: 'agendaWeek',
  editable: false,
  eventLimit: true,
  events: [
  - @kid.availabilities.order("availability_date desc").each do |availability|
    {
    title: "Available",
    start: "#{availability.availability_date.to_datetime.strftime("%Y-%m-%dT%H:%M:%S")}",
    end:   "#{availability.end_availability_date.to_datetime.strftime("%Y-%m-%dT%H:%M:%S")}",
    url: "#"
    },
  ],
  timeFormat: 'H(:mm)'
  });
  });

【问题讨论】:

  • @Amadan 它被传递到do 块中。
  • 抱歉,我是 Rails 新手,我不明白“您是否在本地哈希中提供可用性?”是什么意思
  • @Substantial: 确认,没看到。
  • 请发布完整的错误信息。
  • 这是完整的错误消息:NameError at /profile/jean_oso undefined local variable or method `availability' for #:0x007f92107cf750>

标签: javascript ruby-on-rails haml


【解决方案1】:

我就是这样解决的

%script(type="text/javascript")

$(document).ready(function(){ $('#calendar').fullCalendar({ defaultView: 'agendaWeek', 可编辑:假, 事件限制:真, 事件:[ - @kid.availabilities.order("availability_date desc").each 做 |availability| { 标题:“可用”, 开始:“#{availability.availability_date.to_datetime.strftime("%Y-%m-%dT%H:%M:%S")}", 结束:“#{availability.end_availability_date.to_datetime.strftime("%Y-%m-%dT%H:%M:%S")}", 网址:“#” }, ], timeFormat: 'H(:mm)' }); });

【讨论】:

    猜你喜欢
    • 2020-10-08
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多