0

Railsコントローラーを介してデータベースから日付の配列を返そうとしています。これは、カレンダーのレンダリング中にJavascriptによって使用されます。テストのためにRailsコンソールを引き上げると動作しているようですが、ビューには表示されません。何か案は?私のコードは以下です。

ギア has_many line_items

LineItem belongs_to Gear

Javascript 変数

var $myBadDates = new Array("<%= @gear.line_items.rented %>");

返されているビュー。

var $myBadDates = new Array("[]");

ラインアイテムモデル (短縮)

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

Rails コンソールからの配列

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
 => [[Tue, 12 Feb 2013, Wed, 13 Feb 2013, Thu, 14 Feb 2013, Fri, 15 Feb 2013, Sat, 16 Feb 2013, Sun, 17 Feb 2013, Mon, 18 Feb 2013, Tue, 19 Feb 2013, Wed, 20 Feb 2013, Thu, 21 Feb 2013], [Tue, 05 Feb 2013, Wed, 06 Feb 2013, Thu, 07 Feb 2013, Fri, 08 Feb 2013, Sat, 09 Feb 2013, Sun, 10 Feb 2013, Mon, 11 Feb 2013, Tue, 12 Feb 2013, Wed, 13 Feb 2013, Thu, 14 Feb 2013, Fri, 15 Feb 2013]] 

更新された受け入れられた回答からの動作するJavaScriptコード

var $myBadDates = <%= @gear.line_items.rented.flatten.to_json.html_safe %>;

4

1 に答える 1

2

使ってみてto_json

var $myBadDates = <%= @gear.line_items.rented.to_json %>;
于 2013-03-07T05:42:42.857 に答える