【发布时间】:2012-12-07 17:47:27
【问题描述】:
我有一个页面大致呈现这样的集合:
index.html.haml
= render partial: 'cars_list', as: :this_car, collection: @cars
_cars_list.html.haml
编辑: _cars_list 包含有关个别汽车的其他信息。
%h3 Look at these Cars!
%ul
%li Something about this car
%li car.description
%div
= render partial: 'calendars/calendar_stuff', locals: {car: this_car}
_calendar_stuff.html.haml
- if car.date == @date
%div
= car.date
_cars_contoller.rb
def index
@cars = Car.all
@date = params[:date] ? Date.parse(params[:date]) : Date.today
end
在部分日历中发生的情况是 this_car 始终是汽车集合中的第一辆车,即一遍又一遍地打印相同的日期。
如果我将_calendar_stuff 中的逻辑移动到cars_list 部分,则打印结果会按预期更改。
因此,Rails 似乎在每次渲染局部时都没有将本地 this_car 对象传递给嵌套的局部。
有人知道为什么吗?
附:如果我用
构造代码@cars.each do |car|
render 'cars_list', locals: {this_car: car}
end
我得到了同样的行为。
【问题讨论】:
标签: ruby-on-rails nested partial-views