0

我在 Rails 中使用 Fullcalendar。事件模型中的以下代码为 Fullcalendar 事件创建 json。

我希望事件可编辑:如果 event.maxsynch = "N",则为 true

这是代码:

def as_json(options = {})
  {
      :id => self.id,
      :title => "#{self.workorder.wonum} #{self.title} #{self.hours}",
      :description => self.description || "",
      :start => starts_at.rfc822,
      :end => ends_at.rfc822,
      :allDay => self.all_day,
      :recurring => false,
      :editable => false if self.maxsynch == "N" :true,
      :url => Rails.application.routes.url_helpers.event_path(id),
      :color => "blue",
      :backgroundColor => "blue",
     :borderColor => "black",
     :textColor  => "white"
  }

end

如果 self.maxsynch == "N" :true,则 :editable => false 行是错误的。

我该如何解决?

谢谢您的帮助!!

4

1 回答 1

0

如果我正确理解您的问题,那么您尝试使用的称为条件运算符或三元运算符。“如果条件为真,做A,否则,做B。”

你可以在这里阅读更多关于它的信息:http://en.wikipedia.org/wiki/%3F: #Ruby

所以那行应该是这样的

:editable => (self.maxsynch == "N" ? true : false),

但是,如果您所做的只是返回 true 或 false,那么您根本不必使用条件运算符。您应该只需要传递评估的表达式。

:editable => (self.maxsynch == "N"),

如果语句为真则返回真,否则返回假。如果您需要它具有相反的行为,只需添加一个!到语句的开头,它将反转逻辑。

于 2013-05-02T16:40:22.447 回答