2013-05-02 46 views
0

我在Rails中使用Fullcalendar。以下來自事件模型的代碼爲Fullcalendar事件創建json。Rails Fullcalendar設置某些事件可編輯

我想要的事件可編輯:true如果event.maxsynch = 「N」

這是代碼:

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「:是的,是錯誤的。

我該如何解決?

感謝您的幫助!

回答

0

如果我正確理解你的問題,你要使用被稱爲有條件的三元運算符是什麼。 「如果一個條件成立,那麼做A,否則做B」。

你可以閱讀更多關於它在這裏:http://en.wikipedia.org/wiki/%3F:#Ruby

所以這行應該是像

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

但是,如果你正在做的是返回真或假,你不應該完全可以使用條件運算符。你只需要通過評估表達式。

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

如果聲明爲真,它將返回true,否則返回false。如果你需要它有相反的行爲,只需添加一個!到聲明的開頭,它會顛倒邏輯。

+0

謝謝 - 我用第二個例子,它工作的很棒! – Reddirt 2013-05-02 17:02:43

+0

後續問題=如何設置':color =>「blue」if(self.maxsynch ==「N」),'如果不是,則爲黃色?那麼,用戶可以分辨哪些是可編輯的? – Reddirt 2013-05-02 17:07:42

+0

所以這對於條件運算符來說更好。你可以做':color =>(self.maxsynch ==「N」?「blue」:「yellow」),' – Ryan 2013-05-02 17:28:13

相關問題