I'm trying to return an array of dates from my database through my rails controller, which is then used by Javascript while rendering a calendar. It seems to be working when I pull up the rails console for testing but not in the view. Any ideas? My code is below.
Gear has_many line_items
LineItem belongs_to Gear
Javascript Variable
var $myBadDates = new Array("<%= @gear.line_items.rented %>");
View that is being returned.
var $myBadDates = new Array("[]");
Line Item Model (shortened)
class LineItem < ActiveRecord::Base
belongs_to :gear
scope :available, where(:cart_id => nil)
def self.rented
LineItem.available.collect {|x| (x.rentstart..x.rentend).to_a}
end
end
Array from Rails Console
1.9.3-p194 :007 > g.line_items.rented
LineItem Load (0.7ms) SELECT `line_items`.* FROM `line_items` WHERE `line_items`.`gear_id` = 4 AND `line_items`.`cart_id` IS NULL
=> [[2013年2月12日, 2013年2月13日, 2013年2月14日, 2013年2月15日, 2013年2月16日, 2013年2月17日, 2013年2月18日, 2013年2月19日, 2013年2月20日, 2013年2月21日], [2013年2月05日, 2013年2月06日, 2013年2月07日, 2013年2月08日, 2013年2月09日, 2013年2月10日, 2013年2月11日, 2013年2月12日, 2013年2月13日, 2013年2月14日, 2013年2月15日]]
UPDATED Working javascript code from accepted answer
var $myBadDates = <%= @gear.line_items.rented.flatten.to_json.html_safe %>;
-
I think @gear.line_items will return list of line_items not single line_item. So @ gear.line_items.rented wo'nt work.Sachin R– Sachin R2013年03月07日 05:44:47 +00:00Commented Mar 7, 2013 at 5:44
1 Answer 1
try using to_json
var $myBadDates = <%= @gear.line_items.rented.to_json %>;
6 Comments
.html_safe on the end would help.Explore related questions
See similar questions with these tags.