如何最好地使用批量数据json在rails中渲染?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何最好地使用批量数据json在rails中渲染?相关的知识,希望对你有一定的参考价值。

我有一个重定向到host_calendar_path的create方法。但是这可能是最好的方式,这样我就可以使用rv_date而不是单个rv_date来呈现json响应。

  def create
    start_date = Date.parse(rv_date_params[:start_date])
    end_date = Date.parse(rv_date_params[:end_date])

    (start_date..end_date).each do |day|
      rv_date = RvDate.where(rv_id: rv_date_params[:rv_id], start_date: day)
      if rv_date.present?
        rv_date.update_all(price: rv_date_params[:price], status: rv_date_params[:status])
      else
        rv_date = RvDate.create(rv_id: rv_date_params[:rv_id], start_date: day, end_date: day, price: rv_date_params[:price], status: rv_date_params[:status])
      end
    end
    redirect_to host_calendar_path(rv_id: rv_date_params[:rv_id])

  end

将那些存储到数组并将rv_date作为数组发送是一个很好的解决方案吗?例如:

 def create
    start_date = Date.parse(rv_date_params[:start_date])
    end_date = Date.parse(rv_date_params[:end_date])
    rv_dates = []

    (start_date..end_date).each do |day|
      @rv_date = RvDate.where(rv_id: rv_date_params[:rv_id], start_date: day)
      if @rv_date.present?
        @rv_date.update_all(price: rv_date_params[:price], status: rv_date_params[:status])
      else
        @rv_date = RvDate.create(rv_id: rv_date_params[:rv_id], start_date: day, end_date: day, price: rv_date_params[:price], status: rv_date_params[:status])
      end
      rv_dates << @rv_date
    end
    # redirect_to host_calendar_path(rv_id: rv_date_params[:rv_id])
    render json: rv_dates: rv_dates

end
答案

这可行,是的。理想情况下,您将创建一个名为EventSeries的新记录,并拥有在EventSeries中创建事件实例的所有逻辑。

你最终会得到像这样的东西

post "/event_series.json", params: {start_date: some_date, end_date: some_date}

然后,event_series_controller在哪里:

def create
  @event_series = EventSeries.new(event_series_params)
  if @event_series.save
     render json: @event_series
  end
end

然后,在EventSeries类中:

has_many :events

before_create :prepare_events

def prepare_events
  (start_date..end_date).each do |day|
    ... code to manage events creation ...
  end
end

以上是关于如何最好地使用批量数据json在rails中渲染?的主要内容,如果未能解决你的问题,请参考以下文章

渲染 json 未显示在 rails 4 的视图中

如何在 Rails 中控制器的一个操作中呈现不同的布局和 json 数据?

在 Ruby on Rails 中,如何渲染 JSON?

在 Rails 中,如何使用视图呈现 JSON?

使用rails 5在json中渲染多个包含

如何在 Ruby on Rails 中“漂亮”地格式化 JSON 输出