【问题标题】:How to render the same partial multiple times in a view如何在视图中多次渲染相同的部分
【发布时间】:2014-09-14 16:13:22
【问题描述】:

我试图多次渲染同一个局部视图,但它只渲染这个集合中的最后一个局部视图。我缺少什么来渲染每个?

<ul class="hours">
    <%=
        Time.use_zone(@place.timezone) do
            render partial: 'places/place_hours', locals: { :timezone => @place.timezone, :open => @place.monday_open, :close => @place.monday_close, :day => 'Monday', :is_today => Time.now.in_time_zone.monday? }
            render partial: 'places/place_hours', locals: { :timezone => @place.timezone, :open => @place.tuesday_open, :close => @place.tuesday_close, :day => 'Tuesday', :is_today => Time.now.in_time_zone.tuesday? }
            render partial: 'places/place_hours', locals: { :timezone => @place.timezone, :open => @place.wednesday_open, :close => @place.wednesday_close, :day => 'Wednesday', :is_today => Time.now.in_time_zone.wednesday? }
            render partial: 'places/place_hours', locals: { :timezone => @place.timezone, :open => @place.thursday_open, :close => @place.thursday_close, :day => 'Thursday', :is_today => Time.now.in_time_zone.thursday? }
            render partial: 'places/place_hours', locals: { :timezone => @place.timezone, :open => @place.friday_open, :close => @place.friday_close, :day => 'Friday', :is_today => Time.now.in_time_zone.friday? }
            render partial: 'places/place_hours', locals: { :timezone => @place.timezone, :open => @place.saturday_open, :close => @place.saturday_close, :day => 'Saturday', :is_today => Time.now.in_time_zone.saturday? }
            render partial: 'places/place_hours', locals: { :timezone => @place.timezone, :open => @place.sunday_open, :close => @place.sunday_close, :day => 'Sunday', :is_today => Time.now.in_time_zone.sunday? }
        end
    %>
</ul>

结果:

星期日:休息

预期:

周一:上午 10:00 - 晚上 7:00 营业

星期二:上午 10:00 - 晚上 7:00 营业

星期三:上午 10:00 - 晚上 7:00 营业

星期四:上午 10:00 - 晚上 7:00 营业

周五:上午 10:00 - 晚上 7:00 营业

周六:上午 10:00 - 晚上 7:00 营业

星期日:休息

【问题讨论】:

    标签: ruby-on-rails-4 partial-views


    【解决方案1】:

    最终解决了问题,但仍然好奇这个问题是否有答案。

    <ul class="hours">
      <%=
          place_vars = [
                  { :timezone => @place.timezone, :open => @place.monday_open, :close => @place.monday_close, :day => 'Monday', :is_today => Time.now.in_time_zone.monday? },
                  { :timezone => @place.timezone, :open => @place.tuesday_open, :close => @place.tuesday_close, :day => 'Tuesday', :is_today => Time.now.in_time_zone.tuesday? },
                  { :timezone => @place.timezone, :open => @place.wednesday_open, :close => @place.wednesday_close, :day => 'Wednesday', :is_today => Time.now.in_time_zone.wednesday? },
                  { :timezone => @place.timezone, :open => @place.thursday_open, :close => @place.thursday_close, :day => 'Thursday', :is_today => Time.now.in_time_zone.thursday? },
                  { :timezone => @place.timezone, :open => @place.friday_open, :close => @place.friday_close, :day => 'Friday', :is_today => Time.now.in_time_zone.friday? },
                  { :timezone => @place.timezone, :open => @place.saturday_open, :close => @place.saturday_close, :day => 'Saturday', :is_today => Time.now.in_time_zone.saturday? },
                  { :timezone => @place.timezone, :open => @place.sunday_open, :close => @place.sunday_close, :day => 'Sunday', :is_today => Time.now.in_time_zone.sunday? }
          ]
          Time.use_zone(@place.timezone) do
            render partial: 'places/place_hours', locals: { :place_vars => place_vars }
          end
      %>
    </ul>
    

    然后每个循环通过部分显示内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      • 2017-09-02
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2017-08-22
      • 1970-01-01
      相关资源
      最近更新 更多