Jquery Ruby/Rails中的循环数组

Jquery Ruby/Rails中的循环数组,jquery,ruby-on-rails,ruby,ruby-on-rails-4,Jquery,Ruby On Rails,Ruby,Ruby On Rails 4,由于我基本上是Rails的初学者,我想知道如何最好地遍历数组并修改一些值。数组被呈现到一个视图中,jQuery将在该视图中接收并显示数据。我想在控制器中做一些艰苦的工作(或者我以后可能会切换到模型) 数组名为@invoices,但数组中有一个时间戳,我想格式化它 要格式化的代码是: Time.at(@invoice.date).strftime("%d/%m/%Y") 有人能告诉我如何循环并覆盖时间戳值吗?ruby循环的一种可能语法是- @invoices.each do |invoice|

由于我基本上是Rails的初学者,我想知道如何最好地遍历数组并修改一些值。数组被呈现到一个视图中,jQuery将在该视图中接收并显示数据。我想在控制器中做一些艰苦的工作(或者我以后可能会切换到模型)

数组名为
@invoices
,但数组中有一个时间戳,我想格式化它

要格式化的代码是:

Time.at(@invoice.date).strftime("%d/%m/%Y")

有人能告诉我如何循环并覆盖时间戳值吗?ruby循环的一种可能语法是-

@invoices.each do |invoice|
    invoice.date = Time.at(invoice.date).strftime("%d/%m/%Y")
end

ruby循环的一种可能语法是-

@invoices.each do |invoice|
    invoice.date = Time.at(invoice.date).strftime("%d/%m/%Y")
end

ruby循环的一种可能语法是-

@invoices.each do |invoice|
    invoice.date = Time.at(invoice.date).strftime("%d/%m/%Y")
end

ruby循环的一种可能语法是-

@invoices.each do |invoice|
    invoice.date = Time.at(invoice.date).strftime("%d/%m/%Y")
end

我不清楚您是否只向JQuery发送了日期。如果是,您可以在控制器中执行此操作:

respond_to do |format|
   format.html { render :json => @invoices.collect {|invoice| invoice.date.strftime("%d/%m/%Y")} }
end
请注意,块中
发票
之前没有
@
,因为
发票
是当前正在处理的数组中单个元素的别名


如果您想要完整的发票,它只是稍微复杂一点,而且有一堆Ruby聪明,可以最小化行数。

我不清楚您是否只向JQuery发送日期。如果是,您可以在控制器中执行此操作:

respond_to do |format|
   format.html { render :json => @invoices.collect {|invoice| invoice.date.strftime("%d/%m/%Y")} }
end
请注意,块中
发票
之前没有
@
,因为
发票
是当前正在处理的数组中单个元素的别名


如果您想要完整的发票,它只是稍微复杂一点,而且有一堆Ruby聪明,可以最小化行数。

我不清楚您是否只向JQuery发送日期。如果是,您可以在控制器中执行此操作:

respond_to do |format|
   format.html { render :json => @invoices.collect {|invoice| invoice.date.strftime("%d/%m/%Y")} }
end
请注意,块中
发票
之前没有
@
,因为
发票
是当前正在处理的数组中单个元素的别名


如果您想要完整的发票,它只是稍微复杂一点,而且有一堆Ruby聪明,可以最小化行数。

我不清楚您是否只向JQuery发送日期。如果是,您可以在控制器中执行此操作:

respond_to do |format|
   format.html { render :json => @invoices.collect {|invoice| invoice.date.strftime("%d/%m/%Y")} }
end
请注意,块中
发票
之前没有
@
,因为
发票
是当前正在处理的数组中单个元素的别名


如果您想要整张发票,它只会稍微复杂一点,而且有一系列Ruby智能可以将行数最小化。

如果您只想以特定格式显示数据,则不应更改数据

Rails允许您更改视图中呈现日期的格式(特定于每个区域设置):


(请参阅:)

如果只想以特定格式显示数据,则不应更改数据

Rails允许您更改视图中呈现日期的格式(特定于每个区域设置):


(请参阅:)

如果只想以特定格式显示数据,则不应更改数据

Rails允许您更改视图中呈现日期的格式(特定于每个区域设置):


(请参阅:)

如果只想以特定格式显示数据,则不应更改数据

Rails允许您更改视图中呈现日期的格式(特定于每个区域设置):


(请参阅:)

实际上,您关心的是如何显示数据。这不是属于控制器的逻辑

更好的方法是在模型中进行。假设您使用JSON将数据呈现给jQuery,您只需要添加一个present方法并将其重写为_JSON

class Invoice < ActiveRecord::Base
  # Add a method to present the original date
  def formatted_date
    Time.at(self.date).strftime("%d/%m/%Y")
  end

  # Include above method in Controller's to_json and remove old :date
  def as_json(options)
    super(method: :formatted_date, except: :date)
  end
end
class发票

然后在控制器中,您不需要做任何事情。

实际上,您关心的是如何显示数据。这不是属于控制器的逻辑

更好的方法是在模型中进行。假设您使用JSON将数据呈现给jQuery,您只需要添加一个present方法并将其重写为_JSON

class Invoice < ActiveRecord::Base
  # Add a method to present the original date
  def formatted_date
    Time.at(self.date).strftime("%d/%m/%Y")
  end

  # Include above method in Controller's to_json and remove old :date
  def as_json(options)
    super(method: :formatted_date, except: :date)
  end
end
class发票

然后在控制器中,您不需要做任何事情。

实际上,您关心的是如何显示数据。这不是属于控制器的逻辑

更好的方法是在模型中进行。假设您使用JSON将数据呈现给jQuery,您只需要添加一个present方法并将其重写为_JSON

class Invoice < ActiveRecord::Base
  # Add a method to present the original date
  def formatted_date
    Time.at(self.date).strftime("%d/%m/%Y")
  end

  # Include above method in Controller's to_json and remove old :date
  def as_json(options)
    super(method: :formatted_date, except: :date)
  end
end
class发票

然后在控制器中,您不需要做任何事情。

实际上,您关心的是如何显示数据。这不是属于控制器的逻辑

更好的方法是在模型中进行。假设您使用JSON将数据呈现给jQuery,您只需要添加一个present方法并将其重写为_JSON

class Invoice < ActiveRecord::Base
  # Add a method to present the original date
  def formatted_date
    Time.at(self.date).strftime("%d/%m/%Y")
  end

  # Include above method in Controller's to_json and remove old :date
  def as_json(options)
    super(method: :formatted_date, except: :date)
  end
end
class发票
然后在控制器中你什么都不需要做