我有一个页面大致呈现这样的集合:
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_controller.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
每次渲染局部时都没有将本地对象传递给嵌套的局部。
有谁知道为什么?
PS如果我用
@cars.each do |car|
render 'cars_list', locals: {this_car: car}
end
我得到同样的行为。